Throwable、Error、Exception 运行时异常、非运行时异常

news/2024/11/2 8:20:18/

一、Throwable

Throwable类(可抛出)是一个超类,是所有错误和异常根。只有继承于Throwable的类或者其子类才能够被抛出。
有两个子类为Error和Exception,其他的异常类都继承于这两个子类。


三、Error和Exception

Error类及其子类错误:一般指应用程序存在严重问题,无法通过try-catch来进行捕获。例如,系统崩溃,内存不足,堆栈溢出等,应用程序一般无法自行恢复。

Exception类及其子类异常:可以通过catch来进行捕获,对其进行处理。

当我们自定义运行时异常时,只需要继承RuntimeException即可


二、运行时、非运行时

业务中经常按功能可划分为两类

1.运行时 (非编译检查), 程序运行时,将错误或异常抛出, 编译可以成功

RuntimeException类及其子类
Error类及其子类

2.非运行时(编译检查), 程序编译时,将错误或异常抛出, 编译会失败

除RuntimeException类及其子类外,其他的类

在这里插入图片描述


三、Throwable类中的方法

getMessage() 异常的详细描述性消息
printStackTrace() printStackTrace(PrintStream s) printStackTrace(PrintStreamOrWriter s) 打印堆栈信息

fillInStackTrace() 填充执行堆栈跟踪

setStackTrace(StackTraceElement[] stackTrace) 设置堆栈跟踪元素
getStackTrace() 获取堆栈跟踪元素

initCause(Throwable cause) 初始化异常类
getCause() 获取异常类

addSuppressed(Throwable exception) 追加异常
getSuppressed() 返回追加异常


三、部分详细异常说明

异常说明
Throwable超类
Exception异常
Error错误
RuntimeException运行时异常
InterruptedException
CloneNotSupportedException
VirtualMachineError
LinkageError
AssertionError
NullPointerException空指针异常
IllegalArgumentException非法参数异常
SecurityException
ArithmeticException
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException数组越界异常
ArrayStoreException
ClassCastException类型转换异常
EnumConstantNotPresentException
IllegalMonitorStateException
IllegalStateException非法状态异常
UnsupportedOperationException
OutOfMemoryError内存不足
StackOverflowError堆栈溢出
UnknownError




http://www.ppmy.cn/news/60464.html

相关文章

22个超详细的 JS 数组方法

数组是 js 中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响。 一、创建数组 1、使用数组字面量表示法 var arr4 []; //创建一个空数组var arr…

17组漫画卡通字体推荐给设计师

随着网络的发展,人们越来越喜欢通过手机、平板等设备上网,这也促进了移动端设计的发展。移动端设计的一个重要部分是字体设计,一个好的字体能够让用户更容易理解和接受你的设计,所以字体的选择对于移动端设计来说是至关重要的。本…

css常规流 笔记

常规流 盒模型:规定单个盒子的规则 视觉格式化模型(布局规则):页面中的多个盒子排列规则 视觉格式化模型,大体上将页面中盒子的排列分为三种方式: 1、常规流 2、浮动 3、定位 常规流布局 常规流、文…

Spring第十一阶段:AOP是什么?(01)

1、什么是AOP AOP是面向切面编程。全称:Aspect Oriented Programming 面向切面编程指的是:程序是运行期间,动态地将某段代码插入到原来方法代码的某些位置中。这就叫面向切面编程。 2、一个简单计算数功能加日记 准备计算器相关类 计算接…

jQuery移动端日期组件,H5移动端日期组件,MUI移动端日期组件,移动端简单的日期组件

前言 比较简单 H5移动端日期组件,使用的是MUI官方JS组件,因为不想自己写一个所以直接拿来改动一下用了 效果图 实现 准备工作 到官网下载css和js:https://dev.dcloud.net.cn/mui/ 到官网查看API:https://dev.dcloud.net.cn/mu…

maven中的 type ,scope的作用

dependency为什么会有type为pom,默认的值是什么? dependency中type默认为jar即引入一个特定的jar包。那么为什么还会有type为pom呢?当我们需要引入很多jar包的时候会导致pom.xml过大,我们可以想到的一种解决方…

Matlab与ROS---TF坐标系(七)

0. 简介 我们上面讲了最基础的通信机制以及在Matlab中如何使用这些通信,下面我们这一讲来主要介绍ROS当中最常用的TF坐标系在Matlab中的使用。tf是分布式的,因此所有的坐标帧信息对ROS网络中的每个节点都是可用的。所以这一节就是带领读者熟悉该怎么在M…

IntelliNode:Node.js大模型访问统一接口库【Gen AI】

使用最新的 AI 模型更新你的应用程序可能具有挑战性,因为它涉及了解不同 AI 模型的复杂性并管理许多依赖项。 IntelliNode 是一个开源库,旨在通过提供统一且易于使用的界面来解决集成 AI 模型的挑战。 这使开发人员能够快速构建 AI 原型并使用高级 AI 功…