Vamos discutir e demonstrar como lidar com algumas exceções comuns em Java. Em muitos casos, essas exceções podem ocorrer durante operações rotineiras, e é boa prática incluir tratamento adequado para tornar seu programa mais robusto.
1. NumberFormatException:
Esta exceção ocorre quando você tenta converter uma string para um tipo numérico, mas a string não é um formato válido para o tipo desejado.
public class ExemploNumberFormatException {
public static void main(String[] args) {
try {
String numeroString = "abc";
int numero = Integer.parseInt(numeroString);
System.out.println("Número: " + numero);
} catch (NumberFormatException e) {
System.out.println("Erro: Formato de número inválido.");
}
}
}
2. ArithmeticException:
Esta exceção ocorre quando ocorre um erro aritmético, como uma divisão por zero.
public class ExemploArithmeticException {
public static void main(String[] args) {
try {
int resultado = 10 / 0;
System.out.println("Resultado da divisão: " + resultado);
} catch (ArithmeticException e) {
System.out.println("Erro: Divisão por zero não permitida.");
}
}
}
3. NullPointerException:
Esta exceção ocorre quando você tenta acessar ou chamar métodos em uma referência de objeto que é null.
public class ExemploNullPointerException {
public static void main(String[] args) {
try {
String texto = null;
System.out.println(texto.length());
} catch (NullPointerException e) {
System.out.println("Erro: Referência de objeto nula.");
}
}
}
4. ArrayIndexOutOfBoundsException:
Esta exceção ocorre quando você tenta acessar um índice inválido em um array.
public class ExemploArrayIndexOutOfBoundsException {
public static void main(String[] args) {
try {
int[] numeros = {1, 2, 3};
System.out.println(numeros[10]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Erro: Índice de array inválido.");
}
}
}
5. IOException (Exemplo com FileReader):
Esta exceção ocorre quando ocorre um erro de entrada/saída.
import java.io.FileReader;
import java.io.IOException;
public class ExemploIOException {
public static void main(String[] args) {
FileReader fileReader = null;
try {
fileReader = new FileReader("arquivo.txt");
// Operações de leitura do arquivo
} catch (IOException e) {
System.out.println("Erro de E/S: " + e.getMessage());
} finally {
try {
if (fileReader != null) {
fileReader.close();
}
} catch (IOException e) {
System.out.println("Erro ao fechar o arquivo: " + e.getMessage());
}
}
}
}
Lidar com exceções é crucial para garantir a robustez do seu código. Em casos práticos, muitas vezes você precisará tomar medidas específicas para lidar com exceções, como registrar mensagens de erro, pedir ao usuário para fornecer uma entrada válida, ou tomar decisões de recuperação adequadas ao contexto do seu programa.