这个问题看着很简单,很多时候默认都是使用以下方式获取
try{
//code
}catch(Exception e){
//process exception
}
但是这种方法有些问题,部分异常是无法通过这种方式捕获的,比如动态链接库的加载错误,以及部分系统错误,这种方式就会导致异常被抛出,最后出现无法获取的问题
try{
//code
}catch(Throwable t){
//process exception
}
细心的人会发现很多如log4j等代码中使用的异常类全是Throwable,Throwable比Exception更底层一些,能够拦截到全部的。