Java之异常链

本文介绍了Java异常链的概念,即在捕获异常后如何保留原始异常信息。在JDK1.4之前,程序员需要手动处理,但现在Throwable子类构造器支持传入cause参数来保存原始异常。通过代码示例展示了异常链的使用,帮助读者更好地理解和运用异常链来追踪错误源头。
摘要由CSDN通过智能技术生成

何为异常链?

我们常常会想:要在捕获一个异常后抛出另一个异常,并且希望把原始的异常信息保存下来,这被称之为异常链。

有什么方式呢?

在JDK1.4以前,作为一个程序员,我们必须要自己编写代码来保存原始的异常信息。

现在,所有Throwable的子类在构造器中都可以接受一个cause(因由)对象作为参数。

此cause用来表示原始异常,这样通过将原始异常传递给新的异常,即使当前位置创建并抛出了新的异常,也能通过这个异常链追踪到异常最初发生的地方。

下面用代码来为大家演示:

//异常链
class DynamicFieldException extends Exception{}
public class DynamicFields {
	private Object[][] fields;
	public DynamicFields(int initialSize) {
		fields = new Object[initialSize][2];
		for(int i=0;i<initialSize;i++) 
			fields[i] = new Object[] {null,null};
	}
	public String toString() {
		StringBuilder result = new StringBuilder();
		for(Object[] obj:fields) {
			result.append(obj[0]);
			result.append(": ");
			result.append(obj[1]);
			result.append("\n");
		}
		return result.toString();
	}
	privat
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值