转行小白成长路-java篇
第12章:通过异常处理错误(下)
今天的异常部分重点在finally,匹配异常和异常的缺点。
finally表示无论如何都会执行,但是finally没有终止方法的能力,除非添加return的方法。所以finally总会在try中return之前执行。并没有测试看try-catch-finally经过编译之后的class文件是什么样的。好奇的原因是因为finally在try中return之前执行这是怎么做到的。finally一般用来关闭除了内存之外的资源,内存的回收都是通过垃圾回收器自动进行的。
匹配异常,这是利用了异常的继承。目的在于将错误更清晰可见,具有更好的提示性。这点使用的次数比多,也比较常见,常用于自定义异常,但是自定义过多非常不利于维护,因为现实中,很少有人专门开异常的种类。
异常的缺点也还是有的,昨天说异常为了保证程序的健壮,但就像上面所说过多种类的异常并不利于程序。而且异常还是有一些限制,当有继承现象的时候,只能抛出基类中包含的异常。再有就是构造方法的时候需要小心,构造方法比普通方法多一个初始化对象的功能。
总结:异常的原理就是对栈进行操作,找到错误的根源,它能在一定程度上保证程序的健壮,但过尤不及。当异常与继承相碰撞总能擦出点火花。它最重要的特点就是将可能有问题的代码区分开。