请简单说一下你对受检异常和非受检异常的理解?

1 个回答

  • 萧晨
    提升自己比迎合别人要有用的多。
    **受检异常(Checked Exception)** 和 **非受检异常(Unchecked Exception)** 是 Java 中两种异常类型,主要区别在于编译器是否强制检查。 ### **1. 受检异常(Checked Exception)** - **特点**: - 必须在代码中显式处理(通过 `try-catch` 或 `throws` 声明)。 - 继承自 `Exception`,但不包括 `RuntimeException`。 - **示例**: - `IOException` - `SQLException` - **场景**: - 表示程序运行过程中**可预见且必须处理的错误**,如文件未找到、数据库连接失败。 ### **2. 非受检异常(Unchecked Exception)** - **特点**: - 编译器不会强制检查,程序员可以选择处理或忽略。 - 继承自 `RuntimeException`。 - **示例**: - `NullPointerException` - `ArrayIndexOutOfBoundsException` - **场景**: - 表示程序运行过程中**不可预见的逻辑错误**,如空指针、数组越界。 ### **3. 区别总结** | 特点 | 受检异常 | 非受检异常 | |----------------|----------------------------|--------------------------| | **检查强制性** | 编译时必须处理或声明 | 编译时不强制检查 | | **继承关系** | 继承自 `Exception`(不含 `RuntimeException`) | 继承自 `RuntimeException` | | **适用场景** | 可预见且需要处理的情况 | 运行时逻辑错误 |
    发布于 2024-12-25 04:34 •IP属地 宁夏
    举报
    评论
    收藏