1.使用异常链,需要采用如下方式包装捕获到的异常;
System.out.println("two()");
try {
one();
} catch (Throwable e) {
// e = e.fillInStackTrace();
throw new RuntimeException(e);
}
}
调用two(),会产生如下异常栈帧信息,包含之前异常。
2.直接catch、抛出异常,不能产生异常链。不能获取之前的异常信息;
3.调用fillInStackTrace方法,会拿本行调用信息,替换掉既有堆栈信息;谨慎使用。