在 Java 中,**异常(Exception)**主要分为以下几类,从整体结构到常用分类可以这样理解:
所有异常都继承自 java.lang.Throwable,主要分为两大类:
常见例子:
OutOfMemoryError(内存溢出)StackOverflowError(栈溢出)try {
// 通常不建议捕获 Error
} catch (Error e) {
e.printStackTrace();
}
✅ 结论:
Error 不是异常处理的重点
表示程序可以处理的异常情况,是异常处理的核心。
Exception 又分为两大类:
try-catch,要么 throws常见例子:
IOExceptionSQLExceptionFileNotFoundExceptiontry {
FileInputStream fis = new FileInputStream("a.txt");
} catch (IOException e) {
e.printStackTrace();
}
✅ 特点:
编译器会检查你是否处理了
常见例子:
NullPointerExceptionArrayIndexOutOfBoundsExceptionArithmeticExceptionint a = 10 / 0; // ArithmeticException
✅ 特点:
可以避免,更多是代码问题
| 分类 | 是否必须处理 | 常见示例 | 说明 |
|---|---|---|---|
| Error | 否 | OutOfMemoryError | JVM 错误 |
| Checked Exception | ✅ 是 | IOException | 编译期检查 |
| Runtime Exception | 否 | NullPointerException | 运行期异常 |
Java 异常分为 Error 和 Exception。
Exception 又分为 受检异常(Checked Exception) 和 运行时异常(Runtime Exception)。
Error 表示 JVM 错误,程序一般无法处理;受检异常在编译期必须处理;运行时异常通常由程序逻辑错误引起。
如果你愿意,我可以继续帮你讲:
try-catch-finally 执行顺序throws 和 throw 区别免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。