throw and throws in Java

本文主要通过checked Exception探讨两者的区别,因为checked必须处理,否则编译出错。当我们理解了throw,throws对checked Exception的作用,unchecked也迎刃而解。 throws 用来声明可能会抛出的异常,然后将异常处理交由上级处理。这样写代码的时候可以不用try..catch。 //通过throws处理异常 class Person { public void eat() throws FileNotFoundException { FileInputStream fs = new FileInputStream("fruit.txt"); //此处可能会出现FileNotFoundException, //而FileNotFoundException 属于checked Exception, //因此必须处理该异常,你是用throws的方式抛出给上级去处理或者自己try...catch就由你自己权衡。 } } //通过try...catch处理异常 class Person { public void eat() { try { FileInputStream fs = new FileInputStream("fruit.txt"); } catch (FileNotFoundException e) { //可以什么都不做 } //编译不会报错。但是如果谁调用此方法,必须处理该checked Exception(这两种方法任选其一),否则编译报错。 } } 由此看来,throws是一种用来处理异常的方式,即声明异常交由上级调用者处理,这样在对checked Exception必须做出处理时,免去了try…catch。 throw 直接抛出一个异常。如果抛出checked Exception,那么必须处理,还是一个道理,上面的方式两选一。 ...

2016年2月12日 · 1 分钟 · 125 字 · wiekern