EN JP CN

NPE.RET

NPE.RET

NullPointerException は、NULL 値を逆参照しようとした場合にスローされます。この逆参照は、関数呼び出し、フィールドの読み取りまたは書き込み、または配列アクセスなどがあります。NPE.RET は、メソッド呼び出しで NULL の値を返すパスが存在するとき、メソッド呼び出しの結果が逆参照される場合に報告されます。

例 1

15     Reader getReader(String configurationPath) throws IOException {
16         File file = new File(configurationPath);
17         if (file.exists()) {
18             return new BufferedReader(new FileReader(file));
19         }
20         return null;
21     }
22 
23 
24     Reader getDefaultReader() throws IOException {
25         return getReader("conf");
26     }
27 
28     public void init() throws IOException {
29         load(getDefaultReader());
30     }
31 
32     private String load(Reader reader) throws IOException {
33         StringBuffer sb = new StringBuffer();
34 
35         char[] buffer = new char[1024];
36         int length;
37         while ((length = reader.read(buffer)) > 0) {
38             sb.append(buffer, 0, length);
39         }
40         return sb.toString();
41     }

NPE.RET が 29 行目に対して報告されています。'getDefaultReader()' 呼び出しの戻り値が NULL となる可能性があり、この値が 'load(Reader reader)' メソッドにパラメーターとして渡され、逆参照されるためです。

拡張機能

このチェッカーは、Klocwork knowledge base (ナレッジベース) を利用して拡張できます。詳細については、Java 解析のチューニングを参照してください。