V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jbiao520
V2EX  ›  Java

请教个 Java 的 catch exception 的问题

  •  
  •   jbiao520 · 2018-11-01 14:29:46 +08:00 · 1860 次点击
    这是一个创建于 1974 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    catch (Exception | Error e) {
    	这里的逻辑主要是收集这些 exception 的 msg 到一个容器。
    }
    
    9 条回复    2018-11-01 16:05:10 +08:00
    Raymon111111
        1
    Raymon111111  
       2018-11-01 15:29:15 +08:00
    error 不 catch 你咋知道是啥 error?
    Raymon111111
        2
    Raymon111111  
       2018-11-01 15:29:58 +08:00
    啊 看错了 说的是 Error 啊
    gaius
        3
    gaius  
       2018-11-01 15:32:12 +08:00
    为了 error 后能继续运行?
    szq8014
        4
    szq8014  
       2018-11-01 15:36:13 +08:00
    看里面具体的代码逻辑,有些 naive 代码异常后直接扔 Error 导致“异常”直接就抛到 catch 外面去了,出现不可控的结局。直接 catch Error 肯定也是无奈的选择,这样 catch 就可以和 Exception 及 Error 都谈笑风声了
    lsongiu
        5
    lsongiu  
       2018-11-01 15:41:56 +08:00
    黑猫白猫,抓到耗子就是好猫
    jbiao520
        6
    jbiao520  
    OP
       2018-11-01 15:42:35 +08:00
    @szq8014
    大都是一些拉取数据的行为,不过具体逻辑还没仔细看,比较复杂,等有空了看看原因
    SoloCompany
        7
    SoloCompany  
       2018-11-01 15:45:30 +08:00 via iPhone
    通常的写法是 catch Throwable
    existuser
        8
    existuser  
       2018-11-01 15:55:31 +08:00
    catch 连 Error 它爹 Throwable 能能抓住哦,很厉害滴
    lihongjie0209
        9
    lihongjie0209  
       2018-11-01 16:05:10 +08:00
    要看你在 try 代码块中调用的方法有没有抛出 error 的, 说不定用了什么第三方的库, 乱抛 Error 呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1195 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:13 · PVG 02:13 · LAX 11:13 · JFK 14:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.