Em Java, um bloco try-catch é utilizado para lidar com exceções, permitindo que você trate possíveis erros durante a execução do programa. Vou criar um exemplo simples de um bloco try-catch e mostrar como as exceções podem alterar o fluxo normal do programa.
import java.util.Scanner;
public class ExemploTryCatch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
// Código que pode gerar uma exceção
System.out.print("Digite um número: ");
int numero = Integer.parseInt(scanner.nextLine());
// Dividir por zero para demonstrar uma exceção
int resultado = 10 / numero;
System.out.println("Resultado da divisão: " + resultado);
} catch (ArithmeticException e) {
// Bloco executado se ocorrer uma exceção do tipo ArithmeticException
System.err.println("Erro de divisão por zero. Detalhes: " + e.getMessage());
} catch (NumberFormatException e) {
// Bloco executado se ocorrer uma exceção do tipo NumberFormatException
System.err.println("Erro de formato. Certifique-se de inserir um número válido.");
} catch (Exception e) {
// Bloco executado para qualquer outra exceção não tratada pelos blocos anteriores
System.err.println("Ocorreu uma exceção não esperada. Detalhes: " + e.getMessage());
} finally {
// Bloco opcional de código que sempre é executado, independentemente de ocorrer exceção ou não
System.out.println("Bloco finally - sempre é executado.");
scanner.close();
}
// Código após o bloco try-catch continua a ser executado normalmente
System.out.println("Programa continua a execução após o bloco try-catch.");
}
}
Neste exemplo:
- O usuário é solicitado a inserir um número.
- O programa tenta converter a entrada em um número inteiro e, em seguida, divide 10 pelo número inserido.
- Se o usuário inserir zero, uma exceção
ArithmeticExceptionserá lançada. - Se o usuário inserir algo que não é um número, uma exceção
NumberFormatExceptionserá lançada. - O bloco
catchcorrespondente será executado para tratar a exceção. - O bloco
finallyé opcional e sempre será executado, independentemente de ocorrer uma exceção ou não. - O programa continua a execução normalmente após o bloco
try-catch.
O uso adequado de blocos try-catch é fundamental para lidar com situações excepcionais e manter a robustez do código.