Java 异常处理实战案例集:50 个高频异常的现象、根因、修复与预防
异常处理是 Java 面试与答辩的必考题,但多数教程只讲语法不讲「为什么会炸」。这套案例集把 50 个高频异常按 8 大家族归类,每个案例固定四段式:现象(完整堆栈)→ 根因(到底哪行错了)→ 修复(正确写法)→ 预防(怎么以后都不炸),配快速索引表——复制报错里的异常类名就能直达对应案例。
一、八大异常家族
| 家族 | 代表异常 | 口诀 |
|---|---|---|
| 空指针 | NullPointerException | 先判空再取值 |
| 集合坑位 | ConcurrentModificationException | 遍历删除用迭代器 |
| 数字转换 | NumberFormatException | 脏输入先校验 |
| 线程异步 | ExecutionException | 异常落点看 future |
| 类型/越界 | ClassCast / IndexOutOfBounds | 边界先行 |
二、四个可运行的示例
cd examples javac -encoding UTF-8 *.java java NpeFamily :: 8 个 NPE 场景的安全写法 java CollectionsGotchas :: 遍历删除/定长列表/subList/TreeSet java SafeNumberParse :: 千分位/全角/小数等脏输入安全转换 java ThreadPoolRight :: 线程池显式配置 + 异步链异常落点零第三方依赖,JDK 8+ 直接跑。每个示例类里「错误写法」与「正确写法」并排放,先自己判断哪行炸再对照注释,比看结论记得牢。
三、怎么用最有效
按症状查是主用法:线上报错复制异常类名 → 索引表 → 案例四段式对照。系统学习则按家族顺序过一遍——8 个家族的根因模式(空引用、状态并发修改、格式预期不符、异步边界丢失)理解了,没见过的异常也能推出根因。答辩场景更是直接:被追问异常处理时,「根因 + 预防」的标准话术就在每个案例结尾。
📦 本文对应的完整案例集(50 案例+4 示例)已整理上传:点击查看资源包