JAVA异常

1.异常分类,如下图


JAVA异常
 

error和RuntimeException为未检查异常,无需程序员显示抛出和捕获
IOException等异常需要显示抛出和捕获异常。
 
2。关于异常的问题。
 以前碰到过这样一个问题,系统中有如下代码:
try{ 
  ... 
  }catch(Exception e){ 
  ... 
  }finally{ 
  ... 
  } 
但是系统上线时出现了问题。由于这里已经捕获EXCEPTION,大家就一直找try-catch之外代码的问题。
觉得不可能是try里面的代码出问题了,因为这里已经捕获了异常。可是最后通过输出日志的方法才发现
确实是try里面的代码出问题了。可是为什么try里面的代码出问题了却没有被捕获住呢?因为这里捕获的是
Exception 异常,还有一种error异常并没有捕获。大家一看到catch Exception  就认为异常被捕获了,证明
大家对异常的了解不够,其实还有error类型的异常不能被捕获。