温馨提示×

温馨提示×

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

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

java异常有哪些类型

发布时间:2026-10-06 15:31:59 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

在 Java 中,异常(Exception)主要用于处理程序运行过程中出现的错误或特殊情况。Java 的异常体系是基于类的继承结构设计的,核心根类是 Throwable。


一、总体分类(从 Throwable 出发)

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

二、Error(错误)

特点:

  • 通常由 JVM 或系统层面引起
  • 程序一般无法恢复,也不应该捕获
  • 属于非受检(Unchecked)

常见类型:

  • StackOverflowError:栈溢出
  • OutOfMemoryError:内存不足
  • VirtualMachineError:虚拟机错误

✅ 实际开发中通常不捕获 Error


三、Exception(异常)

1️⃣ 受检异常(Checked Exception)

特点:

  • 编译期就必须处理(try-catch 或 throws)
  • 一般是外部因素导致的可预期问题

常见类型:

  • IOException
  • SQLException
  • FileNotFoundException
  • ClassNotFoundException
  • InterruptedException
try {
    FileInputStream fis = new FileInputStream("a.txt");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

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

特点:

  • 编译期不强制处理
  • 通常是程序逻辑错误

常见类型(都是 RuntimeException 的子类):

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ClassCastException
  • IllegalArgumentException
  • ArithmeticException
int a = 1 / 0; // ArithmeticException

四、常见异常对比总结

类型 是否必须处理 典型代表
Error 否 OutOfMemoryError
Checked Exception 是 IOException
RuntimeException 否 NullPointerException

五、如何自定义异常

// 受检异常
public class MyException extends Exception {
    public MyException(String msg) {
        super(msg);
    }
}

// 非受检异常
public class MyRuntimeException extends RuntimeException {
    public MyRuntimeException(String msg) {
        super(msg);
    }
}

六、简单记忆口诀

Error 是天灾,Exception 是人祸
Checked 要处理,Runtime 靠逻辑

如果你需要,我也可以帮你画 异常体系图 或结合 面试问题 来讲。

向AI问一下细节

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

AI
助
手