第9章 异常
57.只针对异常的情况才使用异常
58.对可恢复的情况使用受检异常,对编译错误使用运行时异常
Java提供了3种可抛出的结构throwable,受检的异常checked exception、运行时异常run-time exception和错误error。
如果期望调用者能够适当地恢复,对于这种情况就应该使用受检的异常。
用运行时异常来表明编程错误。
59.避免不必要地使用受检的异常
60.优先使用标准的异常
61.抛出与抽象相对应的异常
更高层的实现应该捕获底层的异常,同时抛出可以按照高层抽象进行解释的异常。
62.每个方法抛出的异常都要有文档
使用javadoc的@throws
标签记录下一个方法中可能抛出的每个未受检异常,但是不要使用throws关键字将未受检的异常包含在方法的声明中。
63.在细节消息中包含能捕获失败的信息
64.努力使失败保持原子性
失败的方法调用应该使对象保持在被调用之前的状态。