Java异常之Throwable

本文深入探讨了Java中的Throwable类,它是所有异常和错误的基类,详细介绍了其构造方法、属性和方法,包括如何存储异常链、获取异常信息和堆栈跟踪。异常链的概念允许捕获和记录复杂的异常情况,而fillInStackTrace和getStackTrace等方法则提供了调试和问题定位的手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常和错误的顶级父类,只有对象是Throwable或其子类的实例时,才能抛出异常。它有两个比较重要的子类Error和Exception。

属性
# 存储异常的详细信息
private String detailMessage;
# 为另一个Throwable对象,存储异常发生的原因
private Throwable cause = this;

为什么要使用类型为Throwable的cause来存储异常的原因?

因为当一个异常发生时,通常引发异常的上级程序也发生异常,从而导致一连串的异常产生,叫作异常链。一个异常的 cause属性可以指向 引发它的下级异常,从而将整个异常链保存下来。

构造方法
#这两个构造方法并未初始化cause, 需要调用initCause方法进行初始化
Throwable() 
Throwable(String message) 
#初始化了cause
Throwable(Throwable cause) 
Throwable(String message, Throwable cause) 
方法

异常信息

# 返回此throwable的简短描述
String toString() 
# 返回此 throwable 的详细消息
String getMessage() 
# 创建此 throwable 的本地化描述
String getLocalizedMessage() 

异常堆栈

#记录异常堆栈跟踪
Throwable fillInStackTrace() 
#获取异常堆栈跟踪
StackTraceElement[] getStackTrace()
#打印获取异常堆栈跟踪
void printStackTrace(java.io.PrintStream s) 
void printStackTrace(java.io.PrintWriter s) 
#设置异常堆栈跟踪
 void setStackTrace(StackTraceElement[] stackTrace) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值