温馨提示×

温馨提示×

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

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

java异常类有哪些

发布时间:2026-10-27 07:00:42 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

在 Java 中,**异常(Exception)**是用于表示程序运行过程中出现的错误或特殊情况的对象。Java 的异常体系是基于类的继承结构设计的,核心都在 java.lang 包下。

下面系统地给你介绍一下 Java 异常类的分类和常见异常。


一、Java 异常的整体继承结构

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

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

java.lang.Throwable 是所有异常和错误的超类。

常用方法:

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

三、Error(错误,一般不处理)

Error 表示严重的系统错误,不应由程序捕获和处理。

常见 Error:

  • OutOfMemoryError:内存溢出
  • StackOverflowError:栈溢出
  • VirtualMachineError:虚拟机错误
  • NoClassDefFoundError:类找不到

✅ 通常只出现在系统层面问题,程序员一般不 catch。


四、Exception(异常,可处理)

1️⃣ 受检异常(Checked Exception)

编译时必须处理(try-catch 或 throws)

常见受检异常:

  • IOException
  • SQLException
  • ClassNotFoundException
  • FileNotFoundException
  • InterruptedException
  • ParseException

示例:

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

2️⃣ 运行时异常(RuntimeException,非受检异常)

编译不强制处理,通常由程序逻辑错误引起

常见 RuntimeException:

  • NullPointerException(空指针)
  • ArrayIndexOutOfBoundsException(数组越界)
  • ClassCastException(类型转换异常)
  • IllegalArgumentException(非法参数)
  • ArithmeticException(算术异常,如除 0)
  • NumberFormatException(数字格式异常)

示例:

int a = 1 / 0; // ArithmeticException

五、常见异常类速查表

异常类 类型 说明
NullPointerException 运行时 调用 null 对象
IndexOutOfBoundsException 运行时 下标越界
ClassCastException 运行时 类型转换错误
IllegalArgumentException 运行时 参数非法
IllegalStateException 运行时 状态不正确
IOException 受检 IO 错误
SQLException 受检 数据库异常
ClassNotFoundException 受检 类未找到

六、自定义异常

你可以继承 Exception 或 RuntimeException:

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

// 运行时异常
public class MyRuntimeException extends RuntimeException {
    public MyRuntimeException(String msg) {
        super(msg);
    }
}

七、总结一句话

Error 是系统错误不处理,Exception 是程序异常可处理;
RuntimeException 编译不强制,其他 Exception 必须捕获。

如果你愿意,我也可以:

  • 用 图示 画异常结构
  • 讲 try-catch-finally 执行顺序
  • 对比 Java 和 Python 异常处理区别
向AI问一下细节

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

AI
助
手