你能不能让我知道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模式……