Pular para o conteúdo principal
Módulo 5 · Lição 1 de 29/14 no curso~12 min
Lições do módulo (1/2)

Blocos Try-Catch

Em Java, os erros de tempo de execução são tratados usando Exceções. O tratamento de exceções nos permite interceptar condições anômalas e evitar que o programa trave.

A estrutura try-catch

Para lidar com uma possível exceção, colocamos o código arriscado em um bloco try. Se ocorrer um erro dentro do bloco try, a JVM para de executá-lo e procura um bloco catch correspondente para tratar a exceção.

Java
try {
    int result = 10 / 0; // Generates ArithmeticException
    System.out.println("This will not be printed");
} catch (ArithmeticException e) {
    System.out.println("Arithmetic error occurred: " + e.getMessage());
}

O bloco finally

O bloco finally é opcional e sempre executado, independentemente de uma exceção ter sido lançada. É ideal para liberar recursos ou realizar operações de limpeza.

Java
try {
    System.out.println("Executing logic");
} catch (Exception e) {
    System.out.println("Error");
} finally {
    System.out.println("This block is always executed");
}

Lançando exceções: throw

Podemos lançar uma exceção intencionalmente usando a palavra-chave throw seguida por uma nova instância de uma classe de exceção.

Java
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Score must be between 0 and 100");
    }
}

Experimente você mesmo

Exercício#java.m5.l1.e1
Tentativas: 0Carregando…

Complete o código inserindo um bloco try-catch para tratar uma potencial ArithmeticException resultante da divisão a/b. Em caso de erro, imprima 'Erro: divisão por zero'.

Carregando editor…
Mostrar dica

Insira a operação de divisão dentro de um bloco `try` e capture `ArithmeticException`, imprimindo a mensagem necessária.

Solução disponível após 3 tentativas

Exercício#java.m5.l1.e2
Tentativas: 0Carregando…

Complete o código para implementar um bloco try-catch-finalmente. No bloco try, tente converter a string str em um número inteiro usando Integer.parseInt. No bloco catch, intercepte NumberFormatException e imprima 'Número inválido'. No bloco final, imprima 'Finalmente'.

Carregando editor…
Mostrar dica

Escreva a estrutura de bloco `try { ... } catch (NumberFormatException e) { ... } finalmente { ... }`.

Solução disponível após 3 tentativas

Exercício#java.m5.l1.e3
Tentativas: 0Carregando…

Conclua o método checkAge lançando uma IllegalArgumentException com a mensagem 'Underage' se a idade fornecida for menor que 18 anos.

Carregando editor…
Mostrar dica

Use as palavras-chave `if (age <18)` e `throw new` para instanciar e lançar a exceção.

Solução disponível após 3 tentativas