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