O que é uma exceção de ponteiro nulo em Java
-
O que é
NullPointerException
em Java? -
Manipule a classe
NullPointerException
em Java -
Manipule a classe
NullPointerException
em Java -
Encontros com
NullPointerException
em argumentos de linha de comando em Java
Este tutorial apresenta a exceção de ponteiro nulo Java e como você pode tratá-la. Incluímos alguns programas de amostra para você seguir.
Em Java, o valor padrão de qualquer variável de referência é um valor nulo que aponta para um local da memória, mas não tem nenhum valor associado. Quando um programador tenta realizar qualquer operação com esta variável de referência, ele lança uma exceção de ponteiro nulo devido a condições nulas.
Este é um cenário onde essa exceção pode ocorrer, mas essa exceção é a mais ocorrida em Java - o que quebra o código e leva a fluxos de execução anormais. Os seguintes pontos podem gerar NullPointerException
em um código Java:
- Chamar o método de instância de um objeto nulo.
- Modificando um campo de objeto nulo.
- Tratar o comprimento de nulo como se fosse um array.
Para lidar com essa exceção, Java fornece uma classe NullPointerException
localizada no pacote java.lang
. Podemos usar essa classe no bloco catch
para especificar o tipo de exceção e, em seguida, capturá-la para evitar quebra de código.
O que é NullPointerException
em Java?
O exemplo mais básico para entender a classe NullPointerException
é criar um objeto string
e então aplicar um método como toUpperCase()
para converter a string em maiúsculas. Observe o exemplo abaixo e observe que ele lança uma exceção porque o objeto string
está vazio:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
String newStr = str.toUpperCase();
System.out.println(newStr);
}
}
Resultado:
Exception in thread "main" java.lang.NullPointerException
Manipule a classe NullPointerException
em Java
Para lidar com exceções, Java fornece um bloco try-catch. Aqui, podemos usar esses blocos para capturar NullPointerException
e evitar o encerramento anormal do programa. Veja o exemplo abaixo:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
try {
String newStr = str.toUpperCase();
System.out.println(newStr);
} catch (NullPointerException e) {
System.out.println("Null Pointer: " + e.getMessage());
}
}
}
Resultado:
{One=1, Two=2, Three=3}
Manipule a classe NullPointerException
em Java
Se você já conhece a referência nula, pode usar um bloco if-else para validar a variável antes de aplicar qualquer operação. Este método é uma solução excelente, mas só funciona quando você conhece a referência nula antes. Veja o código aqui:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
if (str != null) {
String newStr = str.toUpperCase();
System.out.println(newStr);
} else
System.out.println("String is null");
}
}
Resultado:
String is null
Encontros com NullPointerException
em argumentos de linha de comando em Java
Este é outro cenário em que uma exceção de ponteiro nulo pode ocorrer. O array args[]
do método main()
contém argumentos de linha de comando e, se durante o tempo de execução nenhum argumento for fornecido, isso aponta para uma referência nula. Obter seu comprimento retornará NullPointerException
. Veja o exemplo abaixo:
public class SimpleTesting {
static String[] arr;
public static void main(String[] args) {
int length = arr.length;
System.out.println("Array length : " + length);
}
}
Resultado:
Exception in thread "main" java.lang.NullPointerException