Checked Exception在编译阶段必须处理或声明,而Unchecked Exception无需强制处理。2. 前者继承自Exception(不包括RuntimeException),后者继承自RuntimeException或Error。3. 典型Checked Exception有IOException、SQLException,需用try-catch或throws处理;典型Unchecked Exception如NullPointerException、ArrayIndexOutOfBoundsException,编译器不强制捕获。4. Checked Exception用于可预见的外部问题,提示调用者应对失败场景;Unchecked Exception多由程序逻辑错误引起,应在编码时避免。5. 设计上,Checked Exception强调显式处理,提升健壮性;Unchecked Exception表示“不应发生”的错误,过度使用前者会增加代码复杂度。关键区别在于编译器是否强制干预异常处理流程。

Java中Checked Exception和Unchecked Exception的主要区别在于编译器是否强制要求处理或声明异常。
Checked Exception(已检查异常)
这类异常在编译阶段就必须被处理,否则程序无法通过编译。它们通常表示可预见的、外部因素导致的问题,比如文件找不到、网络连接失败等。
- 继承自Exception类,但不包括RuntimeException及其子类
- 必须用try-catch捕获,或者在方法签名中用throws声明抛出
- 典型例子:IOException、SQLException、ClassNotFoundException
例如,读取文件时必须处理FileNotFoundException:
try {FileInputStream file = new FileInputStream("test.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Unchecked Exception(未检查异常)
这类异常在编译阶段不会强制你处理,程序可以正常编译通过。它们通常由程序逻辑错误引起,比如空指针、数组越界等。
MALL的中文含义是购物中心,是区别于专卖店和百货公司的一个流行的商业模式,MALL里面是各个独立商家,自由自主的定价,各自管理自己的供销渠道和客户关系。电子商务的MALL模式其实就是对B2C业务模式做了多主体的扩展和延伸。目前具有代表性的电子商务MALL模式就是淘宝商城。比如淘宝电器城,他们的模式更像是做房地产的,阿里巴巴有着繁华的互联网商业物业,只是开了一个名字叫淘宝电器城的大市场而已,没有任
立即学习“Java免费学习笔记(深入)”;
- 继承自RuntimeException或Error
- 不需要try-catch捕获,也不必在方法上声明throws
- 典型例子:NullPointerException、ArrayIndexOutOfBoundsException、IllegalArgumentException
比如访问数组元素时可能触发异常,但编译器不强制处理:
int[] arr = new int[5];System.out.println(arr[10]); // 运行时报错,但能编译通过
设计上的不同用途
Checked Exception适合用于可恢复的情况,提醒调用者必须考虑某些失败场景。而Unchecked Exception更适用于编程错误,应该在编码阶段就避免。
- 使用Checked Exception时,迫使开发者显式处理问题
- Unchecked Exception更适合表示“不应该发生”的错误,比如参数校验不通过
- 过度使用Checked Exception可能导致代码冗长,影响可读性









