我希望用 Findbugs 检测到下面的空 catch 块
是否有任何默认的 Findbugs 检查器?
我找不到 ....
} catch (RemoteException re) {
/* ignore */
} catch (Settings.SettingNotFoundException e) {
;
} catch (Exception e) {
}
如果我应该制作自定义检查器,我该怎么做?
你能给我一些指导吗?
我希望用 Findbugs 检测到下面的空 catch 块
是否有任何默认的 Findbugs 检查器?
我找不到 ....
} catch (RemoteException re) {
/* ignore */
} catch (Settings.SettingNotFoundException e) {
;
} catch (Exception e) {
}
如果我应该制作自定义检查器,我该怎么做?
你能给我一些指导吗?
我不认为 FindBugs 对此有内置检查,因为如果我创建一个空的 catch 块,我看不到有关它的警告。但是,Checkstyle具有EmptyBlock
可以单独应用于每种类型的块的检查:try
、catch
、if
、else
等。
java字节码有一个问题,你不能总是确定一个catch块的结尾,所以通常这个测试不能100%在FindBugs中完成。
一个例子是,如果 try 块的唯一退出是 return 语句,并且没有后续的 catch 块或 finally 块。
FindBugs 没有为此实现检测器。您可以通过右键单击项目,然后选择属性 -> Findbugs -> 检测器配置来检查 Findbugs 有哪些检测器。
但是您可以自己制作检测器来检测此错误。或者使用其他工具,如 CodePro Analysis、PMD。
顾名思义,“FindBugs”它只查找源代码中的错误,例如是否存在任何可能导致 SQL 注入的代码行。它不考虑任何最佳实践。CheckStyle 是识别空捕获块甚至不抛出异常并捕获它们的最佳 API。