You Are My Crystal

导航

Java语言的异常处理,完全理解下面4点就可以了

在 Effective Java: Programming Language Guide一书中 

  • 第 39 条:只为异常条件使用异常。也就是说,不要为控制流使用异常,比如,在调用 Iterator.next() 时而不是在第一次检查Iterator.hasNext() 时捕获 NoSuchElementException 。 

  • 第 40 条:为可恢复的条件使用检查型异常(check异常要求必须捕获进行处理,负责无法通过编译。),为编程错误使用运行时异常。这里,Bloch 回应传统的 Sun 观点 —— 运行时异常应该只是用于指示编程错误,例如违反前置条件。 

  • 第 41 条:避免不必要的使用检查型异常。换句话说,对于调用者不可能从其中恢复的情形,或者惟一可以预见的响应将是程序退出,则不要使用检查型异常。 

  • 第 43 条:抛出与抽象相适应的异常。换句话说,一个方法所抛出的异常应该在一个抽象层次上定义,该抽象层次与该方法做什么相一致,而不一定与方法的底层实现细节相一致。例如,一个从文件、数据库或者 JNDI 装载资源的方法在不能找到资源时,应该抛出某种ResourceNotFound 异常(通常使用异常链来保存隐含的原因),而不是更底层的 IOException 、 SQLException 或者NamingException 。

异常类图:

 

 

 

 

 

参考资源:

http://ispring.javaeye.com/blog/222680

http://www.javaeye.com/topic/2038

http://www.javaeye.com/topic/457351 

 

posted on 2010-02-04 11:39  mycrystal  阅读(217)  评论(0编辑  收藏  举报