Como reparar em Java: "Lang Null Pointer Exception"

Escrito por corey bieber | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como reparar em Java: "Lang Null Pointer Exception"
Aprenda a gerenciar uma exceção de ponteiro nulo em Java (Comstock/Comstock/Getty Images)

Uma exceção Null Pointer (ponteiro nulo), também conhecida como java.lang.NullPointerException, acontece quando um aplicativo tenta acessar uma referência que não foi inicializada. Em Java, os tipos não-primitivos, como o String ou o Integer, contêm um ponteiro a um valor e não o valor em si. Se um ponteiro não é inicializado, não apontará a nada e será, portanto, nulo. É comum tentar referenciar um ponteiro nulo passando-o como argumento de um método. A forma mais fácil de gerenciar a exceção é indicar ao método o que fazer se é recebido um ponteiro deste tipo.

Nível de dificuldade:
Moderadamente desafiante

Outras pessoas estão lendo

Instruções

    Criando uma classe simples para produzir a NullPointerException

  1. 1

    Crie uma nova classe no seu aplicativo como a mostrada abaixo. Essa classe produzirá uma exceção de ponteiro nulo.

    public class testePonteiroNulo {

    public static void main(String[] args) { tarefa(null); }

    public static void tarefa(Integer x){ int y = 1 + x; } }

  2. 2

    Execute a classe. A seguinte mensagem aparecerá no console:

    Exception in thread "main" java.lang.NullPointerException at NullPoint.tarefa(NullPoint.java:10) at NullPoint.main(NullPoint.java:6)

  3. 3

    Note que o problema acontece porque você está passando um "null" e o seu método "tarefa" espera um ponteiro a um número inteiro.

    Imprimir uma mensagem de erro para depuração

  1. 1

    Adicione o seguinte código antes do começo do método "tarefa". Isso lhe permitirá fazer a depuração, pois mostrará onde está sendo recebido o valor nulo.

    if(x == null){ System.out.println("task() recebeu um valor nulo para x"); }

  2. 2

    Verifique se seu código ficou como mostrado abaixo:

    public class testePonteiroNulo {

    public static void main(String[] args) { tarefa(null); }

    public static void tarefa(Integer x){

    if(x == null){

    System.out.println("task() recebeu um valor nulo para x");

    } int y = 1 + x; } }

  3. 3

    Execute a classe. Você verá a mensagem "task() recebeu um valor nulo para x" em vez da exceção.

    Gerenciando a exceção

  1. 1

    Coloque um valor padrão quando um valor nulo for passado, adicionando o seguinte código ao começo do método "tarefa".

    if(x == null){ x = 1; }

  2. 2

    Verifique se seu código ficou como mostrado abaixo:

    public class testePonteiroNulo {

    public static void main(String[] args) { tarefa(null); }

    public static void tarefa(Integer x){

    if(x == null){

    x = 1;

    } int y = 1 + x; } }

  3. 3

    Execute a classe. Você não verá mais a NullPointerException porque x agora aponta ao valor 1.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível