今天在整理公司代码的时候发现有一些逻辑中如下,照理说 ERROR 是不应该被 catch 的,但是总感觉有点蹊跷,想问问各位有没有遇到类似情况。
catch (Exception | Error e) {
这里的逻辑主要是收集这些 exception 的 msg 到一个容器。
}
1
Raymon111111 2018-11-01 15:29:15 +08:00
error 不 catch 你咋知道是啥 error?
|
2
Raymon111111 2018-11-01 15:29:58 +08:00
啊 看错了 说的是 Error 啊
|
3
gaius 2018-11-01 15:32:12 +08:00
为了 error 后能继续运行?
|
4
szq8014 2018-11-01 15:36:13 +08:00
看里面具体的代码逻辑,有些 naive 代码异常后直接扔 Error 导致“异常”直接就抛到 catch 外面去了,出现不可控的结局。直接 catch Error 肯定也是无奈的选择,这样 catch 就可以和 Exception 及 Error 都谈笑风声了
|
5
lsongiu 2018-11-01 15:41:56 +08:00
黑猫白猫,抓到耗子就是好猫
|
7
SoloCompany 2018-11-01 15:45:30 +08:00 via iPhone
通常的写法是 catch Throwable
|
8
existuser 2018-11-01 15:55:31 +08:00
catch 连 Error 它爹 Throwable 能能抓住哦,很厉害滴
|
9
lihongjie0209 2018-11-01 16:05:10 +08:00
要看你在 try 代码块中调用的方法有没有抛出 error 的, 说不定用了什么第三方的库, 乱抛 Error 呢
|