码迷,mamicode.com
首页 > 编程语言 > 详细

Effective Java 读书笔记之八 异常

时间:2016-09-18 01:12:06      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

一、只针对异常的情况才使用异常

  1、类具有状态相关的方法时,可采用状态测试方法和可识别的返回值两个策略。

二、对可恢复的情况使用受检异常,对编程错误使用运行时异常

  1、期望调用者能够适当恢复的情况,应该使用受检的异常。

  2、用运行时异常来表明编程错误。

三、编码不必要地使用受检异常

  1、使用受检异常的两个条件:

    a、正确地使用API并不能阻止这种异常条件的发生

    b、异常发生后,使用API的程序员可以立即采取有用的动作。

四、优先使用标准的异常

  1、IllegalArgumentException

  2、IllegalStateException

  3、NullPointerException

  4、IndexOutOfBoundsException

  5、ConcurrentModificationException

五、抛出与抽象层次相对应的异常

  1、每层的实现应该对底层传递上来的底层异常进行转译。

  2、如果底层的异常对调试高层异常有帮组,可采用异常链形式转译。

  3、高层策略是优先阻止或处理底层异常,做不到时才进行异常转译。

六、每个方法抛出的异常都要有文档

七、在细节消息中包含能捕获失败的信息

  1、异常的细节信息应该捕获住失败,便于以后分析。

  2、IndexOutOfBoundsException是一个比较好的例子。

八、努力使失败保持原子性

  1、失败的方法调用应该使对象保持在调用之前的状态,此种方法具有失败原子性。

  2、保持失败原子性的几个策略

    a、使用不可变类的对象

    b、执行操作之前检查参数的有效性

    c、调整处理过程,让可能失败的判断在改变对象状态之前发生

    d、编写一段恢复的代码

    e、执行临时的拷贝操作

九、不要忽悠异常

  1、例外情形是FileInputStream

Effective Java 读书笔记之八 异常

标签:

原文地址:http://www.cnblogs.com/TwoWaterLee/p/5880199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!