Throwable类是Java语言中所有错误和异常的超类。只有作为这个类(或它的一个子类)的实例的对象才会被Java虚拟机抛出,或者可以被Java throw语句抛出。同样地,只有这个类或它的一个子类可以成为catch子句的参数类型。
两个子类的实例,Error和Exception,通常用来表示发生了特殊情况。通常情况下,这些实例是在特殊情况的背景下新创建的,以便包括相关的信息(如堆栈跟踪数据)。
Throwable类声明
以下是java.lang.Throwable类的声明 -
public class Throwable
extends Object
implements Serializable
Throwable类的构造函数
- Throwable() - 构建一个新的Throwable,其详细信息为null。
- Throwable(String message) - 构建一个新的Throwable,并指定详细信息。
- Throwable(String message, Throwable cause) - 用指定的细节信息和原因构造一个新的Throwable。
- protected Throwable(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) - 构造一个新的Throwable,具有指定的详细信息、原因、启用或禁用的抑制功能,以及启用或禁用的可写堆栈跟踪。
- Throwable(Throwable cause) - 构建一个新的Throwable,具有指定的原因和细节信息(cause==null ? null : cause.toString() (这通常包含原因的类别和详细信息)。
Throwable类方法
- void addSuppressed(Throwable exception) - 将指定的异常添加到被抑制的异常中,以便传递这个异常。
- Throwable fillInStackTrace() - 填充执行堆栈跟踪。
- Throwable getCause() - 返回这个Throwable的原因,如果原因不存在或未知,则返回空。
- String getLocalizedMessage() - 创建此可抛事件的本地化描述。
- String getMessage() - 返回这个可抛事件的详细消息字符串。
- StackTraceElement[] getStackTrace() - 提供对printStackTrace()所打印的堆栈跟踪信息的程序化访问。
- Throwable[] getSuppressed() - 返回一个包含所有被抑制的异常的数组,通常是通过 try-with-resources 语句,以提供这个异常。
Throwable initCause(Throwable cause) - 将这个Throwable的原因初始化为指定值。 - void printStackTrace() - 打印这个Throwable及其反向追踪到标准错误流。
- void printStackTrace(PrintStream s) - 打印这个Throwable及其回溯到指定的打印流。
- void printStackTrace(PrintWriter s) - 打印这个Throwable及其回溯到指定的打印器。
- void setStackTrace(StackTraceElement[] stackTrace) - 设置由getStackTrace()返回和由printStackTrace()及相关方法打印的堆栈跟踪元素。
- String toString() - 返回该Throwable的简短描述。
Throwable类示例
public class ThrowableExample {
public static void main(String[] args) {
try{
throwException(null);
}catch (Throwable e) {
System.out.println(e.getMessage());
System.out.println(e.getLocalizedMessage());
System.out.println(e.getClass());
}
}
private static void throwException(String str) throws Throwable{
if(str == null){
throw new Throwable("String is null.");
}
}
}