Findbugs如何检测空捕获块?

时间:2013-09-03 06:01:00

标签: findbugs

我希望用Findbugs

检测下面的空捕获块

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

我找不到......

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

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

你能告诉我一些指南吗?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

java字节代码存在问题,因为您无法始终确定catch块的结束,因此通常在FindBugs中无法100%完成此测试。

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

答案 2 :(得分:0)

FindBugs没有这个探测器的实现。你可以通过右击Project,并选择属性 - >来检查Findbugs有哪些探测器。 Findbugs - >探测器配置。

但你可以让自己检测一下这个bug。或者使用其他工具,比如CodePro Analysis,PMD。

答案 3 :(得分:0)

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