Effective Java (第九章-异常)

本文详细介绍了Java中异常处理的最佳实践,包括如何合理地使用异常、受检异常与运行时异常的区别、避免过度使用受检异常等内容,并给出了各种常见异常的具体应用场景。

第 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 的时候。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值