我希望用Findbugs
检测下面的空捕获块是否有任何默认的Findbugs检查器?
我找不到......
} catch (RemoteException re) {
/* ignore */
} catch (Settings.SettingNotFoundException e) {
;
} catch (Exception e) {
}
如果我应该制作自定义检查器,我该怎么做?
你能告诉我一些指南吗?
答案 0 :(得分:1)
我不认为FindBugs会对此进行内置检查,因为如果我创建一个空的catch块,我就不会看到它的警告。但是,Checkstyle具有EmptyBlock
检查,可以单独应用于每种类型的广告:try
,catch
,if
,else
,等
答案 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。