Use try and catch blocks

Certainly! Here’s an example that demonstrates the use of try and catch blocks to handle exceptions in Java:

import java.util.Scanner;

public class ExampleTryCatch {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            // Solicitar ao usuário para digitar um número
            System.out.print("Digite um número inteiro: ");
            String userInput = scanner.nextLine();

            // Tentar converter a entrada do usuário para um número inteiro
            int number = Integer.parseInt(userInput);

            // Imprimir o resultado
            System.out.println("Número digitado: " + number);

            // Dividir por zero para gerar uma ArithmeticException
            int resultado = 10 / 0;

        } catch (NumberFormatException e) {
            // Lidar com exceção de formato de número inválido
            System.out.println("Erro: Por favor, digite um número inteiro válido.");

        } catch (ArithmeticException e) {
            // Lidar com exceção de divisão por zero
            System.out.println("Erro: Divisão por zero não permitida.");

        } finally {
            // Fechar o scanner
            scanner.close();
        }
    }
}

Neste exemplo:

  • O bloco try contém o código que pode gerar exceções.
  • Cada bloco catch corresponde a um tipo específico de exceção que pode ser gerada no bloco try.
  • Se uma exceção ocorrer, o controle será transferido para o bloco catch correspondente. Se nenhuma exceção ocorrer, o bloco catch será ignorado.
  • O bloco finally é opcional e contém código que será executado independentemente de ocorrer ou não uma exceção. Geralmente, é usado para liberar recursos (como fechar um scanner, como neste exemplo).

Ao utilizar blocos try e catch, você pode tornar seu código mais robusto e lidar com situações inesperadas de maneira mais controlada.