第 57 条:只针对异常的情况才使用异常
1、现在 JVM 实现上,基于异常的模式比标准模式要慢得多。
2、使用异常反而阻止现代 JVM 可能要执行的某些特定优化。
3、异常是为了异常情况下而设计的。不要将它们用于普通的控制流,也不要编写迫使它们这么做的 API 。
第 58 条:对可恢复的情况使用受检异常,对编程错误使用运行时异常
第 59 条:避免不必要的使用受检的异常
第 60 条:优先使用标准的异常
异常 使用场景
IllegalArgumentException 非 null 的参数值不正确
IllegalStateException 对于方法调用而言,对象状态不适应
NullPointerException 禁止使用 null 的情况下参数值为 null
IndexOutOfBoundsException 小标参数值越界
ConcurrentModificationException 禁止并发修改的情况下,检查到对对象的并发修改
UnsupportedOperationExeption 对象不支持用户请求的方法
第 61 条:抛出与抽象相对应的异常
1、如果不能阻止或者处理来自更低层的异常,一般的做法是使用异常转译。
第 62 条:每个方法抛出的异常都要有文档
第 63 条:在细节消息中包含能捕获失败的信息
第 64 条:努力使失败保持原子性
第 65 条:不要忽略异常
1、有一种异常可以忽略,即关闭 FileInputStream 的时候。
本文详细介绍了Java中异常处理的最佳实践,包括如何合理地使用异常、受检异常与运行时异常的区别、避免过度使用受检异常等内容,并给出了各种常见异常的具体应用场景。
1159

被折叠的 条评论
为什么被折叠?



