09-异常(69-77)
69. 只针对异常的情况才使用异常
如题。
70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常
如题。
71. 避免不必要的使用受检异常
如题。
72. 优先使用标准异常
最常见的可重用异常:
73. 抛出与抽象对应的异常
更高层的实现应该捕获低层的异常,同时抛出可以按照高层抽象进行解释的异常。这种做法称为异常转译(exception translation)。
74. 每个方法抛出的所有异常都要建立文档
使用Javadoc的@throws标签记录下一个方法可能抛出的每个未受检异常,但是不要使用throws关键字将未受检的异常包含在方法的声明中。
75. 在细节消息中包含失败 - 捕获信息
为了捕获失败,异常的细节信息应该包含“对该异常有贡献”的所有参数和域的值。
76. 努力是失败保持原子性
优先判断抛出异常,或者使用事务。
77. 不要忽略异常
如果选择忽略异常,catch 块中应该包含一条注释,说明为什么可以这么做,并且变量应该命名为ignored:
09-异常(69-77)
https://janycode.github.io/2020/09/16/02_编程语言/01_Java/04_EffectiveJava/09-异常(69-77)/