异常Exception第五十七条、只针对异常的情况才使用异常第五十八条、对可恢复的情况使用受检异常,对编程错误使用运行时异常第五十九条、避免不必要地使用受检的异常第六十条、优先使用标准的异常第六十一条、抛出与抽象相对应的异常第六十二条、每个方法抛出的异常都要有文档第六十三条、在细节消息中包含能捕获失败的信息第六十四条、努力使失败保持原子性第六十五条、不要忽略异常
第五十七条、只针对异常的情况才使用异常不要优先使用基于异常的模式:因为异常机制的设计初衷是用于不正常的情况,所以很少会有JVM实现对它们进行优化,使得与显式的测试一样快速;把代码放在try-catch块中反而组织了现代JVM实现本来可能要执行的某些特定优化;对数组进行遍历的标准模式并不会导致冗余的检查,有些现代的JVM实现会将他们优化掉。异常应该只用于异常的情况下,它们永远不应该用于正常的控