首页 > 编程 > Java > 正文

java中的异常链

2019-11-10 22:44:41
字体:
来源:转载
供稿:网友

有时候我们可以把捕获到的异常包装成一个新的异常,然后在新的异常里添加对原始异常的引用,再把新的异常抛出,

就像链式反应,一个接着另一个。这种情况就叫做异常链。

注:新的异常中包含原始异常的所有信息

例如:

public class ChainTest {	public static void main(String[] args) {		try{			test2();		}catch(Exception e){			e.PRintStackTrace();//将此 throwable 及其追踪输出至标准错误流。		}	}	public static void test1() throws Exception{		throw new Exception("原始异常");	}	public static void test2(){		try {			test1();		} catch (Exception e) {			//方法一  			RuntimeException newExc=new RuntimeException("新的异常");  //用指定的详细消息构造一个新的运行时异常			newExc.initCause(e);   //通过调用initCause()方法去调用原始异常			throw newExc;  //抛出异常						//方法二(与上面的方法效果相同)			//RuntimeException newExc=new RuntimeException(e);			//throw newExc;		}	}}运行结果:

java.lang.RuntimeException: 新的异常    at com.exception.ChainTest.test2(ChainTest.java:18)    at com.exception.ChainTest.main(ChainTest.java:5)Caused by: java.lang.Exception: 原始异常    at com.exception.ChainTest.test1(ChainTest.java:11)    at com.exception.ChainTest.test2(ChainTest.java:15)    ... 1 more

由上述运行结果可以看出,新的异常中包含原始异常的所有信息。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表