4

你能让我知道 Findbugs 可以在 java 中检测到捕获 RuntimeException 吗?

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

所以我想知道 Findbugs 可以抓住错误的捕捉。

此外,我已经检查了 Klocwork JD.CATCH 并且 checkstyle IllegalCatch 适合此目的。

4

1 回答 1

2

有点。在 findbugs 中有几个处理异常的错误检测器:

  • 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 实现自己的(非常简单的)错误模式......

于 2013-08-20T14:42:11.157 回答