3

几个月来,我们一直在测试 Java 的 Coverity 静态分析(版本 5.5.1)。很高兴发现那些潜在的 RESOURCE_LEAK,但我们也希望能够找到不适当的异常处理。最简单的情况是,我们只想找到所有忽略异常的地方,例如:

catch (SomeException se) {
    // TODO Auto-generated catch block
}

以及捕获顶级异常的位置,例如:

catch (Exception e) {
    e.printStackTrack();
}

Coverity 的手册谈到了使用自定义建模,但我不确定这是否是一个合适的解决方案。提前致谢。

4

1 回答 1

0

目前不支持像 C/C++ 那样为 Java 编写自定义检查器,但我相信它会在未来推出。这是创建标记您想要查找(和修复)的特定行为的检查器的最佳方式。

Coverity Java 分析也运行 FindBugs 作为它的一部分 - FB 是否没有警告捕获未引发的异常?我相信这可能会解决你的第二个案例。我认为他们也有一个空的 catch 块,尽管我现在找不到指向它的链接。

于 2012-07-16T22:06:22.283 回答