2021-10-05 10:55:53
Java中Exception和Error的核心区别如下:
1. 继承关系与基本特性
2. 异常类型与处理原则
Exception(异常)
可预料性:程序运行时可能出现的合理错误(如文件未找到、网络超时),需通过代码主动处理。
分类:
Checked Exception(受检异常):编译时强制要求处理(如IOException),通常通过try-catch或声明throws。
Unchecked Exception(非受检异常):运行时抛出(如NullPointerException、ArrayIndexOutOfBoundsException),多为编程逻辑错误,可选择性处理。
目的:通过捕获和处理恢复程序正常运行。
Error(错误)
严重性:表示程序无法处理的严重问题(如OutOfMemoryError、StackOverflowError),通常由JVM或资源耗尽引发。
处理原则:不应捕获,因其往往导致程序处于不可恢复状态。即使捕获,也难以有效处理(如内存不足时无法分配对象)。
3. 设计意图与典型场景
总结:Exception需主动处理以维持程序逻辑,Error则代表不可恢复的系统故障,两者共同构成Java的异常分层机制。