错误方式
7. 不要在finally中再抛出异常。
错误例子
如果someMethod 和 cleanUp 都抛出异常,那么程序只会把第⼆个异常抛出来,原来的第⼀个异常(正确的原因)将永远丢失。
8. 始终只捕获实际可处理的异常。
不要为了捕捉异常⽽捕捉,只有在想要处理异常时才捕捉异常。
9. 不要使⽤printStackTrace()语句或类似的⽅法。
10. 如果你不打算处理异常,请使⽤finally块⽽不是catch块。
11. 应该尽快抛出(throw)异常,并尽可能晚地捕获(catch)它。你应该做两件事:分装你的异常在最外层进⾏捕获,并且处理异常。
12. 在捕获异常之后,需要通过finally 进⾏收尾。在使⽤io或者数据库连接等,最终需要去关闭并释放它。
13. 不要使⽤if-else 来控制异常的捕获。
14. ⼀个异常只能包含在⼀个⽇志中。
例子
15. 将所有相关信息尽可能地传递给异常。有⽤且信息丰富的异常消息和堆栈跟踪也⾮常重要。
16. 在JavaDoc中记录应⽤程序中的所有异常。应该⽤javadoc来记录为什么定义这样⼀个异常。
17. 异常应该有具体的层次结构。如果异常没有层次的话,则很难管理系统中异常的依赖关系。
类似这样: