跟我学(Effective Java 2)第65条:不要忽略异常

第65条:不要忽略异常

尽管这条建议看上去是显而易见的,但是它却常常被违反,因而值得再次提出来,当API的设计者声明一个方法将抛出某个异常的时候,他们等于正在试图说明某些事情。所以,请不要忽略它!要忽略一个异常非常容易,只需将方法调用通过try语句包围起来,并包含一个空的catch块。

空的catch块会使异常达不到应有的目的,即强迫你处理导常的情况。忽略异常就如同忽略火警信号一样——若把火警信号器关掉了,当真正的火灾发生时,就没有人能看到火警信号了。或许你会侥幸逃过劫难,或许结果将是灾难性的。每当见到空的catch块时,应该警钟长鸣,至少,catch块也应该包含一条说明,解释为什么可以忽略这个异常。

有一种情形可以忽略样常,即关闭FileInputStream的时候。因为你还没有改变文件的状态,因此不必执行任何恢复动作。并目已经从文件中读取到所需要的信息,因此不必终止正在进行的操作。即使在这种情况下,把异常记录下来还是明智的做法,因为如果这些异常经常发生.你就可以调査异常的原因。

本条目中的建议同样适用于受检异常和未受检的异常,不管异常代表了可预见的异常条件,还是编程错误,用空的catch块忽略它,将会导致程序在遇到错误的情况下悄然地执行下去。然后,有可能在将来的某个点上,当程序不能再容忍与错误源明显相关的问题时,它就会头失败。正确地处理异常能够彻底挽回失败。只要将异常传播给外界,至少会导致程序迅速地失败,从而保留了有助于调试该失败条件的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值