NPE.STAT

如果尝试取消引用 null 值,将引发 NullPointerException。取消引用可以是函数调用、字段读取或写入,或数组访问。当方法的源代码不可用,但统计数据表明其可能返回空值时,取消引用方法调用会导致报告 NPE.STAT。将针对适用于方法返回值的空值检查来收集统计数据。

示例 1

复制
     public void printAbsoluteParentPath() {
         final File parent = f.getParentFile();
         if (parent != null) {
             String absolutePath = parent.getAbsolutePath();
             System.out.println("absolute path " + absolutePath);
         }
     }
 
     public void printCanonicalParentPath() throws IOException {
         final File parent = f.getParentFile();
         if (parent != null) {
             String canonicalPath = parent.getCanonicalPath();
             System.out.println("canonical path: " + canonicalPath);
         }
     }
 
     public void printParentPath() throws IOException {
         String path = f.getParentFile().getPath();
         System.out.println("path " + path);
     }

针对第 39 行报告 NPE.STAT,因为“getParentFile()”返回的值通常会在取消引用前进行空值检查,因此可能发生 NPE。

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。

扩展

此检查器可通过 Klocwork 知识库进行扩展。有关详情,请参阅调整 Java 分析。