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