Error与Exception[详解]

Java.lang.Throwable
 |- Error (错误)
 |- Exception (异常)
   |- RuntimeException (运行时异常/系统异常)
     |- ArrayIndexOutOfBoundsException (数组越界)
     |- NullPointerException (空指针异常)
     |- ClassCastException (类转换异常)
   |- CheckedException (一般异常/普通异常)

异常的优点是可以提高程序的健壮性、可读性、可维护性;但异常的设计初衷是用于不正常的情形,JVM一般不会试图对它进行优化,会造成性能下降。
对可能出现的异常进行捕获,最好同时进行异常日志记录,便于系统维护。

Error与Exception区别】:
Error是JVM无法自动恢复的严重问题,如内存泄漏;所以对Error进行继承设计是没有意义的。
Exception是一种设计或实现问题;即,如果程序运行正常,不会发生的情况。

CheckedException与RuntimeException的区别】:
一般异常,是JVM强制让我们处理的异常,在通常的IDE会提示必须用try...catch捕获。
 > 常见的一般异常有:文件读写IO异常、Socket通信时的网络异常、数据操作的JDBC异常。
运行时异常,JVM不强制我们捕获,异常一旦发生,会有JVM接管;一直向上抛,直到遇到异常处理的代码:
 > 如果没有处理块,则达到最上层,
  > 如果是多线程,由Thread.run()抛出; ---> 此线程退出
  > 如果是单线程,由主函数main()抛出。  ---> 此程序退出

 
 
 
 





posted @ 2016-03-04 19:44  *猫斯基  阅读(23)  评论(0)    收藏  举报