mirror of
https://github.com/sjsdfg/effective-java-3rd-chinese.git
synced 2025-02-03 16:20:50 +08:00
Update 70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常.md
This commit is contained in:
parent
7c1de365fe
commit
70e722bca9
@ -2,7 +2,7 @@
|
||||
|
||||
Java 程序设计语言提供了三种 throwable:受检异常(checked exceptions)、运行时异常(runtime exceptions)和错误(errors)。程序员中存在着什么情况适合使用哪种 throwable 的困惑。虽然这种决定不总是那么清晰,但还是有一些一般性的原则提出了强有力的指导。
|
||||
|
||||
在决定使用受检异常还是非受检异常时,主要的原则是:**如果期望调用者能够合理的恢复程序运行,对于这种情况就应该使用受检异常。**通过抛出受检异常,强迫调用者在一个 catch 子句中处理该异常,或者把它传播出去。因此,方法中声明要抛出的每个受检异常都是对 API 用户的一个潜在提示:与异常相关联的条件是调用这个方法一种可能结果。
|
||||
在决定使用受检异常还是非受检异常时,主要的原则是: **如果期望调用者能够合理的恢复程序运行,对于这种情况就应该使用受检异常。** 通过抛出受检异常,强迫调用者在一个 catch 子句中处理该异常,或者把它传播出去。因此,方法中声明要抛出的每个受检异常都是对 API 用户的一个潜在提示:与异常相关联的条件是调用这个方法一种可能结果。
|
||||
|
||||
API 的设计者让 API 用户面对受检异常,以此强制用户从这个异常条件条件中恢复。用户这可以忽视这样的强制要求,只需要捕获异常即可,但这往往不是个好办法(详见第 77 条)。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user