Java中的异常链接

当一个异常链接到另一个异常时,它描述了该异常的原因。Throwable类的构造函数支持Java中的链式异常。它们如下-

Throwable(Throwable cause)
Throwable(String msg, Throwable cause)

Throwable类具有支持异常链接的方法-

方法描述
getCause()返回异常的原始原因
initCause(引发原因)设置调用异常的原因

让我们看一下Java中异常链接的示例。

示例

public class Example {
   public static void main(String[] args) {
      try {
         //创建一个异常
         ArithmeticException e = new ArithmeticException("Apparent cause");
         //设置异常原因
         e.initCause(new NullPointerException("Actual cause"));
         //引发异常
         throw e;
      } catch(ArithmeticException e) {
         //获取异常的实际原因
         System.out.println(e.getCause());
      }
   }
}

输出结果

java.lang.NullPointerException: Actual cause