介绍
java.lang.Throwable
public class Throwable implements Serializable
Error 和 Exception 的父类,只有该类型才可以被 throw 和 catch
不是 RuntimeException
或 Error
子类的都被认为是检查异常(checked exception),包括 Throwable
构造函数
共有5个构造函数,继承时可以选择性重写
public Throwable() {
fillInStackTrace();
}
public Throwable(String message) {
fillInStackTrace();
detailMessage = message;
}
public Throwable(Throwable cause) {
fillInStackTrace();
detailMessage = (cause==null ? null : cause.toString());
this.cause = cause;
}
public Throwable(String message, Throwable cause) {
fillInStackTrace();
detailMessage = message;
this.cause = cause;
}
protected Throwable(String message, Throwable cause,
boolean enableSuppression,
boolean writableStackTrace) {
if (writableStackTrace) {
fillInStackTrace();
} else {
stackTrace = null;
}
detailMessage = message;
this.cause = cause;
if (!enableSuppression)
suppressedExceptions = null;
}
-
fillInStackTrace()
:填充执行栈轨迹信息。这个方法在这个Throwable对象中记录了关于当前线程的堆栈信息 -
detailMessage
:异常信息,getMessage
返回的就是这个信息 -
cause
:引发异常的原因,类型也是 Throwable,形成异常链,也可以通过initCause
方法设置cause
-
enableSuppression
:允许suppressedExceptions
-
writableStackTrace
:写入堆栈信息
公共方法
suppressedExceptions相关,通常与 try-with-resources 语句有关:
- addSuppressed
- getSuppressed
cause相关:
- getCause
- 返回
cause
或 null
- 返回
- initCause
message相关:
- getLocalizedMessage
- 获取本地化信息,默认调用
getMessage
方法
- 获取本地化信息,默认调用
- getMessage
- 返回异常的详细信息,detailMessage
stackTrace相关:
- fillInStackTrace
- getStackTrace, setStackTrace
- printStackTrace
- 先打印堆栈信息,然后打印 Suppressed 信息,再打印 Caused by 信息
- Throwable 20230512 java langthrowable 20230512 java lang exception throwable error java annotation annotationformaterror java lang java lang numberformatexception getsystenantnames java lang module classformaterror nullpointerexception jfinal java lang annotation 20230707 java lang classloader 20230711 java lang 20230411 iterable java lang classcastexception java lang jsonarray