while循环中的死代码警告,如果是2

Big*_*air 4 java dead-code

我不明白为什么Eclipse在第二个if条件中给出了代码的死代码警告:

 boolean frameErreicht = false;
  while (!frameErreicht) {
        String line = reader.readLine();
        if (line.matches("@\\d*")) {
            reader.mark(reader.getLineNumber() - 1);
            reader.setLineNumber(reader.getLineNumber() - 1);
            frameErreicht = true;
        }
        if (line == null)
            throw new IOException("Keine Angaben zu Frames im Eingabestrom");
    }
Run Code Online (Sandbox Code Playgroud)

LinenumberReader的readLine()方法的jdoc表示null如果到达流的末尾它将返回,所以如果在整个text(line == null)中找不到匹配,它应该抛出异常.
但是怎么了?

And*_*rte 14

如果line为null,line.matches("@\\d*")则会抛出NullPointerException