
今天在整理公司代码的时候发现有一些逻辑中如下,照理说 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 呢 |