第五十八条:对可恢复的情况使用受检异常,对编程错误使用运行时异常

本文探讨了Java程序设计语言中三种可抛出结构的应用场景:受检异常、运行时异常与错误。重点阐述了在决定使用哪一种结构时的核心原则,即考虑是否期望调用者能够适当地恢复。详细解释了每种类型的异常特征及应用场合,旨在帮助开发者在实际编程中做出明智选择。

Java程序设计语言提供了三种可抛出结构(throwable):受检的异常(checked exception),运行时异常(run-time exception)和错误(error)。

关于什么时候适合使用哪种可抛出结构,程序员中存在一些困惑。虽然这项决定并不总是那么清晰,但是还是有一般性的原则提出了强有力的指导。

在决定使用受检的异常或者未受检的异常时,主要的原则是:如果期望调用者能够适当地恢复,对于这种情况就应该使用受检的异常。通过抛出受检的

异常,强迫调用者在一个catch子句中处理该异常,或者将它传播出去。因此,在方法中声明要抛出的每个受检异常,都是对API用户的一种潜在指示:

与异常相关联的条件是调用这个方法的一种可能结果。

有两种未受检的可抛出结构:运行时异常和错误。在行为上两者是等同的:它们都是不需要也不应该被捕获的可抛出结构。如果程序抛出未受检的异常或者

错误,往往就属于不可恢复的情形,继续执行下去有害无益。程序抛出运行时异常或者错误,将会导致当前的线程停止,并出现适当的错误消息。

错误往往被JVM保留用于表示资源不足,约束失败,或者其他使程序无法继续执行的条件。由于这已经是个几乎被普遍接受的惯例,因此最好不要再实现

任何新的Error子类。因此,你所实现的未受检的抛出结构都应该是RuntimeException的子类。

转载于:https://www.cnblogs.com/wangliyue/p/4543947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值