阅读笔记:http://www.importnew.com/26613.html
Java异常的分类和类结构图
非检查异常,这样的异常发生的原因多半是代码写的有问题。
检查异常,javac强制要求程序员为这样的异常做预备处理工作(使用try…catch…finally或者throws)。
异常链
重点在于重新抛出。
异常的注意事项
1、当子类重写父类的带有 throws声明的函数时,其throws声明的异常必须在父类异常的可控范围内——用于处理父类的throws方法的异常处理器,必须也适用于子类的这个带throws方法 。这是为了支持多态。
例如,父类方法throws 的是2个异常,子类就不能throws 3个及以上的异常。父类throws IOException,子类就必须throws IOException或者IOException的子类。
finally块
finally中的return语句,使返回值的判断变得复杂并且会抑制(消灭)前面try或者catch块中的异常
总结
- finally块的职责是清理资源,释放连接,关闭管道流等操作,如果有异常也要做try-catch
- finally不要return