- 主题:unchecked&Checked exception
这个理解是有问题的。RuntimeException只是为了方便代码不处理异常直接向上层抛出,但并不等于不能用try catch处理。任何异常总是需要在合适的地方处理掉的,不然随便抛一个异常就导致你的程序或系统崩溃了。
【 在 Splunk (代理二级巡视员) 的大作中提到: 】
: 这个理解没有错误吧
: Java 定义了两种异常:
: - Checked exception: 继承自 Exception 类是 checked exception。代码需要处理 API 抛出的 checked exception,要么用 catch 语句,要么直接用 throws 语句抛出去。
: ...................
--
FROM 111.199.219.*
是的,用checked exception就是强制调用者必须对异常进行处理。然而在实际业务开发中面对一堆不相干的异常往往什么也做不了,只能catch住再rethrow出去。代码中会出现大量没用的try catch块。相反用unchecked exception在集中的地方处理异常通常是更好的设计。
【 在 oldwatch (一条叫java的鱼◎城内风光独好) 的大作中提到: 】
: 不算是错误设计,但是确实是适用场景很少,却被各种库尤其基础库滥用的设计
: 从“宁缺勿滥”的Java设计哲学来说,确实是个错误设计
: 回头看看,大概作为一个Annotation放在编译警告(而非错误)中是更妥当的
: ...................
--
FROM 210.12.183.*