Você está aqui: Java ::: Tratamento de Erros ::: Erros de Tempo de Execução

Como evitar ou corrigir uma exceção NullPointerException

Quantidade de visualizações: 31137 vezes


A exceção NullPointerException é uma exceção (erro) que acontece durante a execução do programa e é causada por um dos fatores abaixo:

1) Tentativa de chamar um método de instância de um objeto null.
2) Tentativa de acessar ou modificar membros de um objeto null.
3) Tentativa de obter o valor da propriedade length de um objeto null como se este fosse um array.
4) Tentativa de acessar ou modificar elementos de um objeto null como se este fosse um array.
5) Atirar um objeto null como se este fosse um valor Throwable.

Por objeto null entendemos uma referência a um objeto de uma classe, interface ou array que foi declarado mas não inicializado ou que sofreu a atribuição do valor especial null, o que torna o objeto disponível para coleta de lixo e consequentemente faz com que a referência aponte para um local nulo na memória.

Antes de vermos os exemplos, observe a posição da classe pública NullPointerException na hierarquia de classes da plataforma Java:
java.lang.Object
  java.lang.Throwable
    java.lang.Exception
      java.lang.RuntimeException
        java.lang.NullPointerException
Esta classe implementa a interface Serializable.

Veja um exemplo no qual tentamos obter o tamanho de uma string não inicializada:
public class Estudos{
  static String nome;  

  public static void main(String args[]){
    System.out.println(nome.length());    

    System.exit(0);
  }
}
Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro:
Exception in thread "main" 
java.lang.NullPointerException
  at Estudos.main(Estudos.java:5)
Uma correção de emergência seria atribuir uma string vazia à referência nome:
static String nome = "";
Veja agora um trecho de código que causa um erro NullPointerException ao tentarmos chamar o método de um objeto que já sofreu a atribuição do valor null:
public class Estudos{
  static String nome = "Osmar J. Silva";  

  public static void main(String args[]){
    System.out.println(nome.length());
    nome = null;
    System.out.println(nome.length());    

    System.exit(0);
  }
}


Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 36 usuários muito felizes estudando em nosso site.