Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java的Coverity静态分析:查找不适当的异常处理_Java_Exception Handling_Static Analysis - Fatal编程技术网

Java的Coverity静态分析:查找不适当的异常处理

Java的Coverity静态分析:查找不适当的异常处理,java,exception-handling,static-analysis,Java,Exception Handling,Static Analysis,我们已经为Java(5.5.1版)测试Coverity静态分析几个月了。发现这些潜在的资源泄漏非常好,但我们也希望能够找到不适当的异常处理。 最简单的情况是,我们只想找到所有忽略异常的地方,例如: catch (SomeException se) { // TODO Auto-generated catch block } catch (Exception e) { e.printStackTrack(); } 以及捕获顶级异常的位置,例如: catch (SomeExcep

我们已经为Java(5.5.1版)测试Coverity静态分析几个月了。发现这些潜在的资源泄漏非常好,但我们也希望能够找到不适当的异常处理。 最简单的情况是,我们只想找到所有忽略异常的地方,例如:

catch (SomeException se) {
    // TODO Auto-generated catch block
}
catch (Exception e) {
    e.printStackTrack();
}
以及捕获顶级异常的位置,例如:

catch (SomeException se) {
    // TODO Auto-generated catch block
}
catch (Exception e) {
    e.printStackTrack();
}

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

目前还没有像C/C++那样支持为Java编写自定义检查程序的功能,但我相信它将来会提供。这是创建标记要查找(和修复)的特定行为的检查器的最佳方法


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

“Coverity的手册谈到了使用自定义建模,但我不确定这是否是一个正确的解决方案。”-这样做肯定没有错。。。如果这就是你要问的。如果你只想检测这两个例子,那么你可以使用任何类型的工具进行常规搜索,例如Perl。您必须包含子regexp以忽略catch块中的注释和空格。PMD为youThanks、Asya执行此操作。我想这就是你所指的:。这对我的情况没有帮助,因为在try块中抛出了一些更窄的异常,如java.lang.IllegalArgumentException,随后的catch块将捕获java.lang.exception。我们希望寻求静态分析的帮助,不鼓励这种做法。我找不到适合我提到的两种情况的检查器…Coverity for Java的某些未来版本可能会支持编写自定义检查器,与他们的C/C++分析SDK相同。