Есть много вещей, которые компилятор не проверяет, это предполагает, что вы делаете вещи по уважительной причине, о которой он может не знать. То, что он пытается предотвратить, это распространенные ошибки разработчиков.
Возможно, кто-то думает, что это хорошая короткая рука для
throw new NullPointerException();
Integer i = null;
try {
i.intValue();
} catch (NullPointerException npe) {
System.err.println("Caught NPE");
npe.printStackTrace();
}
и
try {
throw null;
} catch (NullPointerException npe) {
System.err.println("Caught NPE");
npe.printStackTrace();
}
печатает в Java 6 обновление 38
Caught NPE
java.lang.NullPointerException
at Main.main(Main.java:9)