Menu
Coddy logo textTech

Bloco Finally

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 41 de 59.

O bloco finally contém código que será executado após os blocos try-catch, independentemente de uma exceção ocorrer ou não. Ele é comumente usado para operações de limpeza, como fechar arquivos ou conexões de banco de dados.

Aqui está a estrutura básica de um bloco try-catch-finally:

try {
   // Code that might throw an exception
} catch (ExceptionType e) {
   // Code to handle the exception
} finally {
   // Code that always executes
}

Vamos ver um exemplo com um contador:

int counter = 0;
try {
   int result = 10 / 0;
   // Isso lançará uma exceção
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Isso sempre será executado
}

Após executar o código acima, counter contém:

3

challenge icon

Desafio

Fácil

Crie um método chamado processNumber que recebe dois argumentos:

  1. Uma String (number) para converter em inteiro
  2. Um boolean (shouldThrow) que determina se uma exceção deve ser lançada

O método deve:

  1. Inicializar uma variável result com 0
  2. No bloco try:
    • Se shouldThrow for true, divida 10 por 0
    • Caso contrário, converta a string number em inteiro e armazene em result
  3. No bloco catch: defina result como -1
  4. No bloco finally: adicione 100 ao result
  5. Retorne result como uma string

Folha de consulta

O bloco finally é executado após os blocos try-catch, independentemente de uma exceção ocorrer. É usado para operações de limpeza.

Estrutura básica:

try {
   // Code that might throw an exception
} catch (ExceptionType e) {
   // Code to handle the exception
} finally {
   // Code that always executes
}

Exemplo com contador:

int counter = 0;
try {
   int result = 10 / 0; // throws exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3; // always executes
}
// counter = 3

Experimente você mesmo

import java.util.Scanner;

public class Main {
    public static String processNumber(String number, boolean shouldThrow) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String number = scanner.nextLine();
        boolean shouldThrow = Boolean.parseBoolean(scanner.nextLine());
        
        System.out.println(processNumber(number, shouldThrow));
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo