Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 sonar能否动态捕获JVM引起的空指针异常_Java_Sonarqube_Findbugs - Fatal编程技术网

Java sonar能否动态捕获JVM引起的空指针异常

Java sonar能否动态捕获JVM引起的空指针异常,java,sonarqube,findbugs,Java,Sonarqube,Findbugs,我想问sonar能否在运行时找到java虚拟机导致的空指针异常??如果是,请告诉我哪个声纳规则为我们做。我对此感到非常困惑,因为sonar findbugs配置文件中存在一些规则,即sonar捕获空指针异常。 findbugs规则之一避免抛出空指针异常说我们应该避免抛出空指针异常 请澄清我关于sonar是否可以捕获JVM抛出的空指针异常??或者它只能捕获定制的空指针异常(由开发人员生成)以及这些sonar规则的含义(空指针异常、空指针取消引用等)。使用sonar的规则是什么?是的,sonar可以

我想问sonar能否在运行时找到java虚拟机导致的空指针异常??如果是,请告诉我哪个声纳规则为我们做。我对此感到非常困惑,因为sonar findbugs配置文件中存在一些规则,即sonar捕获空指针异常。 findbugs规则之一避免抛出空指针异常说我们应该避免抛出空指针异常


请澄清我关于sonar是否可以捕获JVM抛出的空指针异常??或者它只能捕获定制的空指针异常(由开发人员生成)以及这些sonar规则的含义(空指针异常、空指针取消引用等)。使用sonar的规则是什么?

是的,sonar可以通过在引擎盖下使用FindBugs工具检测JVM抛出的
NullPointerException
s(NPE)。但是,它不能在运行时动态地这样做,因为FindBugs是一个

从中,选择键中带有
NP\u
前缀的键,例如
NP\u ALWAYS\u NULL
。大约有30个这样的检测器处理空指针分析

请注意,FindBugs通过对代码的静态分析来工作。换句话说,它不会动态地“捕获”NPE,也不会以某种方式执行代码的模拟运行和“捕获”NPE。这将很难做到,因为每个可能的代码路径都需要测试用例。相反,FindBugs仅使用其检测器分析类文件。
因此,你不会发现所有可能发生NPE的情况,但是由于探测器的数量,你会捕获大多数。此外,该领域的一些FindBugs探测器相当复杂,尽管总有改进的余地

还请注意,为了帮助检测器完成它们的工作,您可能必须使用(也)注释方法参数和返回值。如果您搜索这些注释,您将发现许多关于它们在各种环境中正确使用的有用建议