异常和错误的顶级父类,只有对象是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)