【问题标题】:Findbugs contrib: Method throws alternative exception from catch block without historyFindbugs contrib:方法从没有历史记录的 catch 块中抛出替代异常
【发布时间】:2016-01-20 14:59:35
【问题描述】:

fb-contrib 抱怨

方法从没有历史记录的 catch 块中抛出替代异常

在我的一个 try/catch 块中。

如何解决这个问题?有没有关于如何解决这个问题的详细说明?

【问题讨论】:

    标签: java static-analysis findbugs


    【解决方案1】:

    原始异常被捕获,您的代码抛出另一个异常,而不包括java.lang.Throwable cause中的原始异常

    发现了一些东西here:

    此方法捕获一个异常,并抛出一个不同的异常,而不包含 原来的例外。这样做会隐藏异常的原始来源,从而进行调试和修复 这些问题很难。最好使用这个新异常的构造函数,它接受一个 原始异常,以便将此详细信息传递给用户。

    FindBugs contrib 的好消息! 所以传递原因,记录它,......用你捕获的东西做点什么。 希望这对某人有所帮助。

    例子:

    try {
      ...
    } catch (final SomeException theOriginalCause) {
      // throw new SomeOtherException(); // Bad !
      throw new SomeOtherException(theOriginalCause); // Good.
    }
    

    【讨论】:

    • 传递原因的简单示例(通常是最好和最简单的方法)将把它作为一个极好的答案。如果我不在手机上,我会这样做。
    • @DavidHarkness 添加示例
    猜你喜欢
    • 2021-12-12
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多