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

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

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

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

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

最佳答案 有点.

在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实现你自己的(非常简单的)bug模式……

点赞