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 cause) - 原因是当前异常。
Throwable(String msg, Throwable cause) - msg 是异常消息,原因是当前异常。
方法
getCause - 返回实际原因。
initCause(Throwable cause) - 设置调用异常的原因。
广告