NPE.COND

如果尝试取消引用 null 值,将引发 NullPointerException。取消引用可以是函数调用、字段读取或写入,或数组访问。如果之前对某个本地变量进行了空值检查,并且经检查确认其值可能为空,则对其取消引用就会报告 NPE.COND 错误。

示例 1

复制
     static void printPoint(Point p) {
         if (p == null) {
             System.err.println("p is null");
         }
         if (p.x < 0 || p.y < 0) {
             System.out.println("Invalid point");
             return;
         }
         System.out.println(p);
     }

针对第 19 行报告 NPE.COND,因为在此处取消引用 p,而根据第 16 行的检查,p 可能为 null。

安全培训

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

扩展

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