【学习笔记】第十二章 通过异常处理错误

来源:互联网 发布:出租屋桌子推荐知乎 编辑:程序博客网 时间:2024/05/18 03:05

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 异常的限制

子类中继承自父类的方法可以不抛出父类定义时抛出的异常。
反之,若子类中抛出异常,父类中同名方法必须也抛出该异常。

如果不抛出,则父类对象在向下转型为子类对象时,会导致本来不抛出异常的方法抛出异常。

对于异常的意义,报告问题的存在大于解决问题。

0 0