3

我希望用 Findbugs 检测到下面的空 catch 块

是否有任何默认的 Findbugs 检查器?

我找不到 ....

} catch (RemoteException re) {
    /* ignore */
} catch (Settings.SettingNotFoundException e) {
    ;
} catch (Exception e) {
}

如果我应该制作自定义检查器,我该怎么做?

你能给我一些指导吗?

4

4 回答 4

1

我不认为 FindBugs 对此有内置检查,因为如果我创建一个空的 catch 块,我看不到有关它的警告。但是,Checkstyle具有EmptyBlock可以单独应用于每种类型的块的检查:trycatchifelse等。

于 2013-09-04T19:01:21.360 回答
1

java字节码有一个问题,你不能总是确定一个catch块的结尾,所以通常这个测试不能100%在FindBugs中完成。

一个例子是,如果 try 块的唯一退出是 return 语句,并且没有后续的 catch 块或 finally 块。

于 2017-01-12T22:53:59.943 回答
0

FindBugs 没有为此实现检测器。您可以通过右键单击项目,然后选择属性 -> Findbugs -> 检测器配置来检查 Findbugs 有哪些检测器。

但是您可以自己制作检测器来检测此错误。或者使用其他工具,如 CodePro Analysis、PMD。

于 2013-09-13T12:46:48.657 回答
0

顾名思义,“FindBugs”它只查找源代码中的错误,例如是否存在任何可能导致 SQL 注入的代码行。它不考虑任何最佳实践。CheckStyle 是识别空捕获块甚至不抛出异常并捕获它们的最佳 API。

于 2017-05-05T14:40:47.113 回答