Java java.lang.Throwable类详细介绍

x33g5p2x  于2021-08-20 转载在 Java  
字(1.8k)|赞(0)|评价(0)|浏览(146)

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.");
  }
 }
}

相关文章

热门文章

更多