首页 > 编程语言 >20230512 java.lang.Throwable

20230512 java.lang.Throwable

时间:2023-08-28 09:56:32浏览次数:33  
标签:lang 20230512 fillInStackTrace Throwable message cause public detailMessage

介绍

java.lang.Throwable

public class Throwable implements Serializable

Error 和 Exception 的父类,只有该类型才可以被 throw 和 catch

不是 RuntimeExceptionError 子类的都被认为是检查异常(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 信息

标签:lang,20230512,fillInStackTrace,Throwable,message,cause,public,detailMessage
From: https://www.cnblogs.com/huangwenjie/p/17650410.html

相关文章

  • 20230516 java.lang.StringBuilder
    介绍java.lang.StringBuilderpublicfinalclassStringBuilderextendsAbstractStringBuilderimplementsjava.io.Serializable,Comparable<StringBuilder>,CharSequence此类提供与StringBuffer兼容的API,但不保证线程安全append方法总是在构建器的末尾添加这些字符;......
  • 20230525 java.lang.Enum
    介绍java.lang.EnumpublicabstractclassEnum<EextendsEnum<E>>implementsConstable,Comparable<E>,Serializable所有枚举类的父类可序列化枚举类可以实现接口,不能继承APIstatic方法valueOfpublic方法name返回枚举常量名ordinal返回enum声明......
  • 20230711 java.lang.ClassLoader
    介绍java.lang.ClassLoaderpublicabstractclassClassLoader类加载器APIstaticClassLoadergetPlatformClassLoadergetSystemClassLoader获取系统类加载器,即用于加载第一个应用类的类加载器SystemResourcegetSystemResourcegetSystemResourceAsStreamgetSys......
  • GolangWeb框架——Gin框架的使用
    Gin是一个轻量级、灵活和高性能的Web框架,基于Go语言开发。它提供了简洁的API设计和出色的性能,使得构建Web应用程序变得更加简单和高效。本文将介绍如何使用Gin框架来快速构建Web应用程序,并展示其主要特性和用法。本文将介绍关于Gin的基本使用方法,包括基本的请求处理与发送响应。G......
  • golang中 go get 加 -u 和不加 -u 参数的区别
    -u会更新本地已有的代码包加上它可以利用网络来更新已有的代码包及其依赖包。如果已经下载过一个代码包,但是这个代码包又有更新了,那么这时候可以直接用-u标记来更新本地的对应的代码包。如果不加这个-u标记,执行goget一个已有的代码包,会发现命令什么都不执行。只有加了-u......
  • HTTP代理爬虫代码--如何使用Golang编写
     HTTP代理爬虫是一个常见的网络爬虫技术。使用代理可以隐藏真实IP地址,避免被封禁或限制访问,提高爬虫的稳定性和效率。本文将介绍如何使用GOLANG语言编写HTTP代理爬虫代码。   首先,我们需要了解GOLANG语言中的HTTP客户端库。GOLANG标准库中提供了net/http包,可以方便地进行HTT......
  • Golang字符串拼接性能测试
    packagemytestimport( "bytes" "fmt" "strconv" "strings" "testing")constNUMBERS=10000funcBenchmarkStringSprintf(b*testing.B){ b.ResetTimer() fori:=0;i<b.N;i++{ varstrstri......
  • LangChain-Chatchat学习资料-Windows开发部署(踩坑篇)
    LangChain-Chatchat学习资料-Windows开发部署(踩坑篇)环境准备的坑1.CUDA版本问题我是用的RTX3060显卡,通过nvidia-smi命令,查看显卡支持的CUDA版本为12.2,然后下载版本的CUDA,后续发现这里是个坑,pytorch目前最新版为2.0.1,支持的cuda版本最高为11.8,所以想使用显卡跑pytorch,需要讲CUDA......
  • java.lang.NoClassDefFoundError问题解决方案
    骑士李四记录:场景在pom.xml中引入一个包,之后启动部署项目,出现java.lang.NoClassDefFoundError的问题。报错信息:解决方案:加入这段代码<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executi......
  • LangChain-Chatchat学习资料-Windows开发部署
    在windows10下的安装部署参考资料1.LacnChain-Chatchat项目基础环境准备本人使用的是Windows10专业版22H2版本,已经安装了Python3.10,CUDA11.8版本,miniconda3。硬件采用联想R9000P,AMDR75800H,16G内存,RTX30606G。安装依赖#使用conda安装激活环境condacreate-nLangchain......