Java 异常:类型、层次结构与处理机制
Java 异常
探索 Java 异常 —— 理解错误、异常类型及塑造健壮错误处理的层次结构。
异常是打断程序正常流程的意外事件,常导致程序异常终止。
异常可能由多种原因引起,包括:
- 无效用户输入
- 设备故障
- 网络中断
- 物理限制(如磁盘空间不足)
- 代码缺陷
- 尝试打开不存在的文件
Java 异常层次结构
下图为 Java 异常层次结构简化图。

该层次结构根节点为 Throwable 类。分为两大分支:Error 和 Exception。
错误
错误 代表不可恢复状况,如 JVM 内存溢出、栈溢出、库不兼容、无限递归。它们通常超出程序员控制,不建议尝试处理。
异常
异常 是程序可捕获并恢复的状况。异常发生时,JVM 创建异常对象,封装名称、描述及发生时的程序状态。
下个教程将讲解如何处理这些异常。现在先看 Exception 分支下的两大类别。
Java 异常类型
Exception 分支分为 RuntimeException(非受检)和 IOException(受检)。理解区别对有效错误处理至关重要。
1. RuntimeException
RuntimeException 实例源于编程错误,编译期不检查。常见例子:
- API 使用不当 ——
IllegalArgumentException - 空指针解引用 ——
NullPointerException - 数组越界 ——
ArrayIndexOutOfBoundsException - 除零 ——
ArithmeticException
简言之,运行时异常往往暗示应修复的编码错误,而非捕获。
2. IOException
IOException 代表编译器强制开发者处理的受检异常。典型场景:
- 打开不存在的文件 ——
FileNotFoundException - 读取超出文件末尾
妥善处理这些受检异常是构建健壮应用的关键。
下个教程将深入异常处理技术。
java
- 精通 Java 运算符:类型、语法与实战示例
- Java 注释:类型、用法与最佳实践
- 精通 Java 增强 for 循环:语法、示例与最佳实践
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java 匿名内部类:定义、语法与实战示例
- 精通 Java 异常处理:try-catch、finally、throw 与 throws 详解
- Java throw 与 throws 深度解析:异常处理实战指南
- 精通 Java 多异常捕获:单 catch 块处理多异常
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- Java 断言实战指南:尽早发现 Bug 与保障代码可靠性