请教个 Java 的 catch exception 的问题

2018-11-01 14:29:46 +08:00
 jbiao520

今天在整理公司代码的时候发现有一些逻辑中如下,照理说 ERROR 是不应该被 catch 的,但是总感觉有点蹊跷,想问问各位有没有遇到类似情况。

catch (Exception | Error e) {
	这里的逻辑主要是收集这些 exception 的 msg 到一个容器。
}
1897 次点击
所在节点    Java
9 条回复
Raymon111111
2018-11-01 15:29:15 +08:00
error 不 catch 你咋知道是啥 error?
Raymon111111
2018-11-01 15:29:58 +08:00
啊 看错了 说的是 Error 啊
gaius
2018-11-01 15:32:12 +08:00
为了 error 后能继续运行?
szq8014
2018-11-01 15:36:13 +08:00
看里面具体的代码逻辑,有些 naive 代码异常后直接扔 Error 导致“异常”直接就抛到 catch 外面去了,出现不可控的结局。直接 catch Error 肯定也是无奈的选择,这样 catch 就可以和 Exception 及 Error 都谈笑风声了
lsongiu
2018-11-01 15:41:56 +08:00
黑猫白猫,抓到耗子就是好猫
jbiao520
2018-11-01 15:42:35 +08:00
@szq8014
大都是一些拉取数据的行为,不过具体逻辑还没仔细看,比较复杂,等有空了看看原因
SoloCompany
2018-11-01 15:45:30 +08:00
通常的写法是 catch Throwable
existuser
2018-11-01 15:55:31 +08:00
catch 连 Error 它爹 Throwable 能能抓住哦,很厉害滴
lihongjie0209
2018-11-01 16:05:10 +08:00
要看你在 try 代码块中调用的方法有没有抛出 error 的, 说不定用了什么第三方的库, 乱抛 Error 呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/503402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX