Java中的链接异常
链式异常有助于将一个异常与其他异常相关联。通常,我们需要引发自定义异常,并希望保留原始异常的详细信息,在这种情况下,我们可以使用链式异常机制。考虑下面的示例,在该示例中,我们将在保留原始异常消息的同时引发自定义异常。
示例
public class Tester {
public static void main(String[] args) {
try {
test();
}catch(ApplicationException e) {
System.out.println(e.getMessage());
}
}
public static void test() throws ApplicationException {
try {
int a = 0;
int b = 1;
System.out.println(b/a);
}catch(Exception e) {
throw new ApplicationException(e);
}
}
}
class ApplicationException extends Exception {
public ApplicationException(Exception e) {
super(e);
}
}输出结果
java.lang.ArithmeticException: / by zero
throwable类使用以下方法支持链式异常:
构造函数
Throwable(Throwable原因) -原因是当前异常。
Throwable(Stringmsg,Throwable原因)-msg是异常消息,原因是当前异常。
方法
getCause-返回实际原因。
initCause(Throwablecause)-设置调用异常的原因。