O Bloco Finally
Deslize para mostrar o menu
O bloco finally em Java é uma parte crucial do tratamento de exceções que garante que determinado código sempre será executado, independentemente do que acontecer nos blocos try ou catch.
O bloco finally é normalmente utilizado para tarefas como limpeza de recursos—fechamento de arquivos, liberação de conexões de rede ou liberação de memória—para que sua aplicação permaneça robusta e eficiente mesmo quando ocorrem erros.
try {
// code
} catch {
// code
} finally {
// code
}
A execução do bloco finally é especial porque ele é executado sempre que a instrução try associada é concluída, independentemente de uma exceção ser lançada ou não. Se uma exceção ocorrer no bloco try e for capturada por um bloco catch, o bloco finally será executado após a finalização do catch. Se nenhuma exceção for lançada, o bloco finally ainda será executado após o bloco try. Mesmo que o código nos blocos try ou catch contenha uma instrução return, o bloco finally será executado antes que o método retorne o controle ao chamador. Esse comportamento torna o bloco finally um local confiável para ações que sempre devem ocorrer, como fechar arquivos ou liberar outros recursos.
Main.java
12345678910111213141516171819202122package com.example; public class Main { public static void main(String[] args) { String[] numbers = {"10", "20", "not-a-number", "40"}; int index = 2; int result = 0; try { System.out.println("Attempting to parse value..."); result = Integer.parseInt(numbers[index]); System.out.println("Parsed value: " + result); } catch (NumberFormatException e) { System.out.println("Parsing failed: " + e.getMessage()); } finally { // This block always executes System.out.println("The 'finally' block has executed — cleanup or final steps go here."); } System.out.println("Program continues..."); } }
O bloco finally em Java é um bloco especial que sempre é executado após um bloco try, independentemente de uma exceção ter sido lançada ou capturada. Ele é utilizado para garantir que ações finais importantes, como o fechamento de recursos ou a realização de limpeza, sejam sempre executadas.
No exemplo acima, o programa tenta analisar um valor de um array. Mesmo que a análise falhe e o bloco catch seja executado, o bloco finally ainda será executado, garantindo que a mensagem final seja impressa e que qualquer limpeza necessária ocorra. Isso torna o programa mais confiável e previne vazamentos de recursos.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo