温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java异常体系是什么

发布时间:2026-09-15 23:33:51 来源:亿速云 阅读:99 作者:小樊 栏目:编程语言

Java 的**异常体系(Exception Hierarchy)**是指 Java 中用于描述和处理程序运行过程中错误与异常的一套类继承结构。它统一在 java.lang 包下,核心根是 Throwable。


一、整体结构(重点)

Throwable
 ├── Error(错误)
 └── Exception(异常)
      ├── RuntimeException(运行时异常 / 非受检异常)
      └── 其他 Exception(受检异常 / Checked Exception)

二、Throwable(所有异常和错误的父类)

java.lang.Throwable 是所有异常和错误的超类,只有 Throwable 及其子类才能被 throw / catch。

常用方法:

  • getMessage()
  • printStackTrace()
  • getCause()

三、Error(错误,一般不可恢复)

特点

  • 表示严重系统问题
  • 通常不应捕获
  • 程序一般无法处理

常见 Error

  • OutOfMemoryError(内存溢出)
  • StackOverflowError(栈溢出)
  • VirtualMachineError

✅ 实际开发中:不捕获 Error


四、Exception(异常,可处理)

1️⃣ 受检异常(Checked Exception)

  • 编译期强制检查
  • 必须 try-catch 或 throws
  • 通常是外部因素导致

常见受检异常:

  • IOException
  • SQLException
  • ClassNotFoundException

示例:

try {
    FileInputStream fis = new FileInputStream("a.txt");
} catch (IOException e) {
    e.printStackTrace();
}

2️⃣ 非受检异常(Unchecked Exception)

  • 继承自 RuntimeException
  • 编译期不强制处理
  • 通常是代码逻辑错误

常见 RuntimeException:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ClassCastException
  • IllegalArgumentException

示例:

int[] arr = new int[3];
System.out.println(arr[5]); // ArrayIndexOutOfBoundsException

五、Checked vs Unchecked 对比

类型 是否编译检查 父类 示例
受检异常 ✅ 是 Exception IOException
非受检异常 ❌ 否 RuntimeException NullPointerException
错误 ❌ 否 Error OutOfMemoryError

六、异常处理机制

1️⃣ try-catch-finally

try {
    // 可能异常代码
} catch (Exception e) {
    // 处理异常
} finally {
    // 一定会执行
}

2️⃣ throws(声明异常)

public void test() throws IOException {
}

3️⃣ throw(抛出异常)

throw new RuntimeException("出错");

七、自定义异常

public class MyException extends Exception {
    public MyException(String msg) {
        super(msg);
    }
}

八、面试常问总结

✅ Java 异常体系根类是 Throwable
✅ Error 不处理,Exception 可处理
✅ RuntimeException 是非受检异常
✅ 受检异常必须处理或声明

如果你愿意,我也可以:

  • 画一张异常体系图
  • 讲 Spring / 项目中的异常处理最佳实践
  • 对比 Java 和 Python 异常体系
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手