Java异常/错误体系简介

Java异常/错误体系简介

所有异常和错误的根都是 Throwable 类。它有两个主要的子类:

  1. Error (错误): 表示严重问题,通常是JVM层面或系统级的,应用程序不应该(也通常无法)捕获和处理。例如 OutOfMemoryError
  2. Exception (异常): 表示可以被应用程序捕获和处理的问题。它又分为:
    • Checked Exception (检查异常): 编译器会强制要求你必须处理(try-catchthrows)的异常,如 IOException, SQLException
    • Unchecked Exception (非检查异常 / 运行时异常): 继承自 RuntimeException 的异常,编译器不强制要求处理,通常由程序逻辑错误引起,如 NullPointerException

现在,让我们基于这个理解,按照后端开发的常见场景进行分类。


Java 常见异常分类列表

1. 基础运行时异常 (Unchecked Exceptions)

这类异常通常由程序自身的逻辑错误引起,属于 RuntimeException 的子类,编译器不强制捕获。

异常类中文含义常见触发场景
NullPointerException空指针异常调用一个 null 对象的实例方法或访问其字段。
IllegalArgumentException非法参数异常向方法传递了一个不合法或不适当的参数。
NumberFormatException数字格式化异常试图将一个非数字格式的字符串转换为数字类型。
ArrayIndexOutOfBoundsException数组索引越界异常使用了小于0或大于等于数组长度的索引来访问数组。
ArithmeticException算术异常出现异常的算术条件,例如整数除以零。
ClassCastException类型转换异常试图将一个对象强制转换为它并非其实例的子类。
IllegalStateException非法状态异常在不适当的时间或状态下调用了对象的方法。
ConcurrentModificationException并发修改异常在使用迭代器遍历集合时,该集合的结构被其他线程或代码修改。

2. I/O 与类加载异常 (Checked Exceptions)

这类异常通常与外部资源交互(如文件、网络)或类的动态加载有关,属于检查异常,编译器会强制要求处理。

异常类中文含义常见触发场景
IOException输入/输出异常所有I/O操作失败的通用父类异常(如文件读写、网络流中断)。
FileNotFoundException文件未找到异常试图打开一个不存在的文件进行读写操作。
ClassNotFoundException类未找到异常在运行时通过字符串加载类(Class.forName())时,找不到对应的类文件。
SQLExceptionSQL异常 / 数据库异常所有通过JDBC与数据库交互时发生的错误的父类。
InterruptedException中断异常一个正在休眠、等待或被阻塞的线程被另一个线程中断。

3. 反射相关异常 (Mostly Checked Exceptions)

这类异常专门用于处理Java反射机制中可能出现的各种问题。

异常类中文含义常见触发场景
NoSuchMethodException方法未找到异常试图获取一个不存在的方法(方法名或参数列表不匹配)。
IllegalAccessException非法访问异常试图通过反射访问或修改一个无权访问的字段或方法(如 private)。
InstantiationException实例化异常试图通过反射实例化一个接口、抽象类或没有无参构造函数的类。
InvocationTargetException调用目标异常通过反射调用的方法或构造函数其内部本身抛出了一个异常。

4. JVM 错误 (Errors)

这类问题非常严重,通常表示JVM资源耗尽或发生了不可恢复的错误,应用程序一般无法处理。

错误类中文含义常见触发场景
StackOverflowError栈溢出错误方法调用层次太深(如无限递归),导致线程栈空间耗尽。
OutOfMemoryError内存溢出错误JVM无法为新对象分配足够的堆内存空间,并且垃圾回收也无能为力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值