Findbugs能否在java中检测到捕获RuntimeException?

时间:2013-08-19 23:50:20

标签: findbugs

你可以让我知道,Findbugs可以在java中检测到catcing RuntimeException吗?

有效的java建议我们不要捕获RuntimeException。

所以我想知道Findbugs可以抓错了。

此外,我已经检查了Klocwork JD.CATCH和checkstyle IllegalCatch是否适用于此目的。

1 个答案:

答案 0 :(得分:2)

排序。 在findbugs中有几个bug检测器处理异常:

  • DE:方法可能会丢弃例外
  • DE:方法可能会忽略异常
  • Nm:类不是从异常派生的,即使它被命名为
  • RV:创建和删除异常而不是抛出
  • REC:未抛出异常时会捕获异常

以及findbugs-contrib(findbugs插件)有一些:

  • BED_BOGUS_EXCEPTION_DECLARATION
  • DRE_DECLARED_RUNTIME_EXCEPTION
  • EXS_EXCEPTION_SOFTENING_NO_CHECKED
  • EXS_EXCEPTION_SOFTENING_HAS_CHECKED
  • EXS_EXCEPTION_SOFTENING_NO_CONSTRAINTS

尝试一下并检查它们是否符合您的要求(尤其是fb的最后一个(REC))。但是,如果您显然需要检测以下模式:

catch ( RuntimeException re){
    ....            
}

您可能需要为findbugs实现自己的(非常简单的)错误模式......