Java 的**异常体系(Exception Hierarchy)**是指 Java 中用于描述和处理程序运行过程中错误与异常的一套类继承结构。它统一在 java.lang 包下,核心根是 Throwable。
Throwable
├── Error(错误)
└── Exception(异常)
├── RuntimeException(运行时异常 / 非受检异常)
└── 其他 Exception(受检异常 / Checked Exception)
java.lang.Throwable 是所有异常和错误的超类,只有 Throwable 及其子类才能被 throw / catch。
常用方法:
getMessage()printStackTrace()getCause()OutOfMemoryError(内存溢出)StackOverflowError(栈溢出)VirtualMachineError✅ 实际开发中:不捕获 Error
try-catch 或 throws常见受检异常:
IOExceptionSQLExceptionClassNotFoundException示例:
try {
FileInputStream fis = new FileInputStream("a.txt");
} catch (IOException e) {
e.printStackTrace();
}
RuntimeException常见 RuntimeException:
NullPointerExceptionArrayIndexOutOfBoundsExceptionClassCastExceptionIllegalArgumentException示例:
int[] arr = new int[3];
System.out.println(arr[5]); // ArrayIndexOutOfBoundsException
| 类型 | 是否编译检查 | 父类 | 示例 |
|---|---|---|---|
| 受检异常 | ✅ 是 | Exception | IOException |
| 非受检异常 | ❌ 否 | RuntimeException | NullPointerException |
| 错误 | ❌ 否 | Error | OutOfMemoryError |
try {
// 可能异常代码
} catch (Exception e) {
// 处理异常
} finally {
// 一定会执行
}
public void test() throws IOException {
}
throw new RuntimeException("出错");
public class MyException extends Exception {
public MyException(String msg) {
super(msg);
}
}
✅ Java 异常体系根类是 Throwable
✅ Error 不处理,Exception 可处理
✅ RuntimeException 是非受检异常
✅ 受检异常必须处理或声明
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。