【Java 基础】Throwable

本文详细介绍了Java异常体系中的Error和Exception类别,包括Error(如OutOfMemoryError)由系统故障引起无需处理,以及Exception的子类RuntimeException(如NullPointerException)和CheckedException(如IOException),强调了运行时异常和非运行时异常的区别和处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Alt 'Java Throwable UML 图'

如图展示了 Java 整个异常体系的关系。

Throwable 的 Java 异常体系的基类, 他的直接子类有 Error 和 Exception 2 个。

1 Error

Error 表示的是由于系统错误, Java 虚拟机抛出的异常, 例如 Java 虚拟机崩溃, 内存不够等, 这种情况仅凭程序自身是无法处理的, 在程序中也不会对 Error 异常进行捕捉和抛出。

常见的实现有

  1. OutOfMemoryError
  2. StackOverflowError
  3. IOError

2 Exception

Exception 一般是由程序逻辑错误引起的,需要从程序逻辑角度进行处理, 尽可能避免这类异常的发生。

总体可以细分为 2 类 RuntimeException (运行时异常) 和 非 RuntimeException (非运行时异常),
也叫做 CheckedException (检查时异常)。

2.1 RuntimeException

程序运行过程中才可能发生的异常, 一般为代码的逻辑错误: 空指针, 类型错误转换,数组下标访问越界,网络端口被占用等。 这里异常在代码编译期是无感知, 无法检查出来的, 只有在实际运行代码时则会暴露出来。

常见的实现有

  1. ArrayIndexOutOfBoundsException
  2. ClassCastException
  3. NullPointerException

在编译期间, 一般不会强制要求处理这种异常。

2.2 非 RuntimeException (CheckedException)

编译期间可以检查到的异常, 必须显式的进行处理

  1. 通过 try - catch 进行捕获处理
  2. 通过 throw - throws 抛出给上一层

常见的实现有

  1. IOException
  2. InterruptedException
  3. NoSuchMethodException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值