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.
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.
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.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}Experimente você mesmo
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'.
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
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'.
Mostrar dica
Escreva a estrutura de bloco `try { ... } catch (NumberFormatException e) { ... } finalmente { ... }`.
Solução disponível após 3 tentativas
Conclua o método checkAge lançando uma IllegalArgumentException com a mensagem 'Underage' se a idade fornecida for menor que 18 anos.
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