- 主题:unchecked&Checked exception
这个理解没有错误吧
Java 定义了两种异常:
- Checked exception: 继承自 Exception 类是 checked exception。代码需要处理 API 抛出的 checked exception,要么用 catch 语句,要么直接用 throws 语句抛出去。
- Unchecked exception: 也称 RuntimeException,它也是继承自 Exception。但所有 RuntimeException 的子类都有个特点,就是代码不需要处理它们的异常也能通过编译,所以它们称作 unchecked exception。RuntimeException(运行时异常)不需要try...catch...或throws 机制去处理的异常。
--
FROM 139.224.253.*
这个理解正确但无甚意义
重要的是现实代码中该如何处理
【 在 Splunk 的大作中提到: 】
: 这个理解没有错误吧
: Java 定义了两种异常:
: - Checked exception: 继承自 Exception 类是 checked exception。代码需要处理 API 抛出的 checked exception,要么用 catch 语句,要么直接用 throws 语句抛出去。
: ...................
--
FROM 219.147.99.*
注意第二种异常可以用try catch捕获
比如空指针异常
【 在 Splunk 的大作中提到: 】
: 这个理解没有错误吧
:
: Java 定义了两种异常:
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 120.244.234.*
这个理解是有问题的。RuntimeException只是为了方便代码不处理异常直接向上层抛出,但并不等于不能用try catch处理。任何异常总是需要在合适的地方处理掉的,不然随便抛一个异常就导致你的程序或系统崩溃了。
【 在 Splunk (代理二级巡视员) 的大作中提到: 】
: 这个理解没有错误吧
: Java 定义了两种异常:
: - Checked exception: 继承自 Exception 类是 checked exception。代码需要处理 API 抛出的 checked exception,要么用 catch 语句,要么直接用 throws 语句抛出去。
: ...................
--
FROM 111.199.219.*
我的理解是
如果一个方法会抛runtimeexception
那就意味着这个方法的作者觉得调用这个方法的时候不需要处理这个异常
否则的话,就应该抛exception
这算是一个java的约定
当然也可以不遵守
【 在 appletree (绿油油的小麦地) 的大作中提到: 】
: 这个理解是有问题的。RuntimeException只是为了方便代码不处理异常直接向上层抛出,但并不等于不能用try catch处理。任何异常总是需要在合适的地方处理掉的,不然随便抛一个异常就导致你的程序或系统崩溃了。
--
FROM 180.167.95.*
runtimeException意味着你无法做*特别(降级/重试/恢复/...)*处理
你只能选择在某个地方接收异常并转入异常处理流程
【 在 appletree (绿油油的小麦地) 的大作中提到: 】
: 这个理解是有问题的。RuntimeException只是为了方便代码不处理异常直接向上层抛出,但并不等于不能用try catch处理。任何异常总是需要在合适的地方处理掉的,不然随便抛一个异常就导致你的程序或系统崩溃了。
--
FROM 116.233.89.*
按这样的设计,那Catch(Exception ex)里面最好不要处理了,直接往上抛。。
我以前有个需求,就是启动时候,发现某文件或者某数据不在,直接terminate程序,
这种例子,可以catch住filenotexception然后throw一个runtimeexception吧
【 在 oldwatch (一条叫java的鱼◎城内风光独好) 的大作中提到: 】
: runtimeException意味着你无法做*特别(降级/重试/恢复/...)*处理
: 只能选择在某个地方接收异常并转入异常处理流程
--
FROM 139.224.253.*
catch里头本来就应该是一些异常转义(转为自定义runtime exception),
当前上下文信息绑定之类的活
从底层/中间层抛出来之后直接层层穿透直到顶层的统一异常处理流程
【 在 Splunk (代理二级巡视员) 的大作中提到: 】
: 按这样的设计,那Catch(Exception ex)里面最好不要处理了,直接往上抛。。
: 我以前有个需求,就是启动时候,发现某文件或者某数据不在,直接terminate程序,
: 这种例子,可以catch住filenotexception然后throw一个runtimeexception吧
: ...................
--
修改:oldwatch FROM 116.233.89.*
FROM 116.233.89.*
Java 的一位国外权威发文说 Checked Exception 是个错误的设计, 这个说法一直不太明白什么意思.
现代高级语言倒是取消了 Checked Exception, 但习惯了 Java 的异常, 就会感觉很别扭, 不知道是否应该捕获异常, 捕获哪种异常.
【 在 javafish 的大作中提到: 】
: 这个理解正确但无甚意义
: 重要的是现实代码中该如何处理
--
FROM 123.125.37.*
不算是错误设计,但是确实是适用场景很少,却被各种库尤其基础库滥用的设计
从“宁缺勿滥”的Java设计哲学来说,确实是个错误设计
回头看看,大概作为一个Annotation放在编译警告(而非错误)中是更妥当的
【 在 xeagle (静下心来编程) 的大作中提到: 】
: Java 的一位国外权威发文说 Checked Exception 是个错误的设计, 这个说法一直不太明白什么意思.
: 现代高级语言倒是取消了 Checked Exception, 但习惯了 Java 的异常, 就会感觉很别扭, 不知道是否应该捕获异常, 捕获哪种异常.
--
修改:oldwatch FROM 116.233.89.*
FROM 116.233.89.*