异常链 博客分类: java ArithmeticException异常链
程序员文章站
2024-03-25 18:03:28
...
一 异常链简介
常常会在捕获一个异常后,再抛出另外一个异常,并且希望把异常原始信息保存下来,这被称为异常链。
在JDK1.4以前,程序员必须自己编写代码来保存原始异常信息。
在JDK1.4以后,所有的Throwable的子类在构造器中都可以接收一个cause对象作为参数。这个cause就用来表示原始异常,这样可以把原始异常传递给新的异常,使得即使在当前位置创建并抛出新的异常,你也能通过这个异常链跟踪到异常最初发生的位置。
二 异常链的应用
1 代码示例
public class SalException extends Exception { public SalException(){} public SalException(String msg) { super(msg); } // 创建一个可以接受Throwable参数的构造器 public SalException(Throwable t) { super(t); } }
public class TestSalException { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { Calsal(); } catch(SalException e) { e.printStackTrace(); } } public static void Calsal() throws SalException { try { int a; a=8/0; } catch(Exception e) { throw new SalException(e); } } }
2 运行结果
SalException: java.lang.ArithmeticException: / by zero
at TestSalException.Calsal(TestSalException.java:29)
at TestSalException.main(TestSalException.java:11)
Caused by: java.lang.ArithmeticException: / by zero
at TestSalException.Calsal(TestSalException.java:25)
... 1 more
推荐阅读
-
Java程序员面试题之一 博客分类: 面试题 面试题面向对象封装类异常运行时异常
-
java开发过程中所有会出现的异常与解决的办法 博客分类: Eclipse web异常
-
异常链 博客分类: java ArithmeticException异常链
-
Java Exception | 异常 博客分类: Java Foundation JavaException异常
-
Java中List.remove报UnsupportedOperationException异常 博客分类: 技术总结 JavaList.removeUnsupportedOperationException异常
-
异常链 博客分类: java ArithmeticException异常链
-
JAVA 后台全局异常控制 博客分类: 设计 java异常spring
-
Java Scaner小问题 博客分类: Java异常 JavaInputMismatchException
-
Java内存区域与内存溢出异常 博客分类: J2EEJava基础 JavaJVM内存溢出线程
-
java中常见的异常及解决方法 博客分类: java java异常解决方法