简述 Java 的异常体系结构。Error 和 Exception 有什么区别?
Java 的异常体系结构是面向对象语言中处理运行时错误的核心机制,采用继承分层设计,所有异常类均继承自 Throwable 类。以下是其体系结构和 Error 与 Exception 区别的详细说明:
一、Java 异常体系结构
- 顶层父类:Throwable所有异常和错误的根类,包含两个直接子类:Error 和 Exception。
- Error(错误)表示系统级严重问题,通常由 JVM 抛出(如内存耗尽、虚拟机崩溃等)。程序无法恢复,开发者通常不需要捕获或处理。示例:OutOfMemoryError、StackOverflowError、NoClassDefFoundError。
- Exception(异常)表示程序可处理的异常,分为两大类:Checked Exception(受检异常)编译时强制要求处理的异常(如 IOException、SQLException)。通常由外部因素(如文件不存在、网络中断)引发。Unchecked Exception(非受检异常)包括 RuntimeException 及其子类(如 NullPointerException、IllegalArgumentException)。编译时不强制处理,通常由程序逻辑错误引发(如空指针、数组越界)。
二、Error 和 Exception 的核心区别
特性 | Error | Exception |
严重性< |