Effective Java之对可恢复的情况使用受检异常,对编程错误使用运行时异常(五十八)

java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception。
这里写图片描述

异常分成三种结构

1.错误:Error是Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。
在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error的任何子类,因为这些错误可能是再也不会发生的异常条件。
大多数这样的错误都是异常条件。

2.运行时异常:RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的RuntimeException 的任何子类都无需在 throws 子句中进行声明。它是Exception的子类。

运行时异常和错误统称为未受检结构,运行时异常又叫未受检异常
未受检结构的行为都是等同的,都是不需要也不应该抛出的,因为如果程序抛出了未受检异常或者错误,说明是不可恢复的异常,继续下去有害无益。
但是,他们的区别是runtimeException一般是编程错误,error一般是系统的错误

3.受检异常:Exception类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。

定义方法时必须声明所有可能会抛出的exception; 在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;exception是从java.lang.Exception类衍生出来的。例如:IOException,SQLException就属于Exception

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值