12.1 概念
为了避免在代码中过多检查可能发生的错误,在遇到错误时直接抛出异常,在之后合适的地方捕获异常并建议修正,增加了代码的可读性,将发现问题和解决问题分离。
12.3 捕获异常
使用try/catch语句,在try语句中如果抛出异常,可以再对应的catch语句中捕获并修正。
12.4 创建自定义异常
要自己定义异常类,必须从已有的异常类继承,最好是选择意思相近的异常类继承。
12.6 捕获所有异常
将catch(Exception e){}至于末尾,避免它抢在其他处理程序之前先把异常捕获了。
调用异常对象的fillInStackTrace()方法可以将异常在调用位置重新抛出。
12.8 使用finally进行清理
无论如何finally代码块一定会执行,在其中进行收尾工作(不一定是回收内存)。
在进行收尾工作时需要注意,如果在try中初始化对象是抛出异常,导致对象仍为空,而又在finally中对该对象进行操作可能出错。
解决:使用嵌套try语句。
12.9 异常的限制
子类中继承自父类的方法可以不抛出父类定义时抛出的异常。
反之,若子类中抛出异常,父类中同名方法必须也抛出该异常。
如果不抛出,则父类对象在向下转型为子类对象时,会导致本来不抛出异常的方法抛出异常。

被折叠的 条评论
为什么被折叠?



