NullPointerExceptions detalhadas
A JVM informa exatamente qual variável era null — sem adivinhação.
Comparação de Código
✕ Java 8
// Old NPE message: // "NullPointerException" // at MyApp.main(MyApp.java:42) // Which variable was null?!
✓ Java 14+
// Modern NPE message: // Cannot invoke "String.length()" // because "user.address().city()" // is null // Exact variable identified!
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Variável exata
A mensagem identifica a variável null na cadeia de chamadas.
Depuração mais rápida
Chega de adivinhar qual das 5 chamadas encadeadas era null.
Atualização gratuita
Nenhuma alteração de código — basta executar no JDK 14+.
Abordagem Antiga
NPE críptica
Abordagem Moderna
NPE detalhada
Desde o JDK
14
Dificuldade
Iniciante
Suporte JDK
NullPointerExceptions detalhadas
Disponível
Amplamente disponível desde o JDK 14 (março de 2020)
Como funciona
As NPEs detalhadas descrevem qual expressão era null e qual operação falhou. Isso é habilitado por padrão desde o Java 14 — não é necessário alterar código, basta atualizar o JDK.
Documentação Relacionada