Java 中的链式异常\n


链式异常有助于关联一个异常与其他异常。通常我们需要抛出一个自定义异常,并希望保留原始异常的详细信息,在这种情况下,我们可以使用链式异常机制。考虑以下示例,在保持原始异常消息的前提下,我们抛出自定义异常。

示例

在线演示

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 是异常消息,cause 是当前的异常。

方法

  • getCause - 返回实际的原因。

  • initCause(Throwable cause) - 设置调用异常的原因。

更新日期: 18-Jun-2020

2K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告