Sobes.tech
Junior — Middle

Em que situações é utilizado o bloco finally no tratamento de exceções e qual é o seu papel?

sobes.tech IA

Resposta da IA

O bloco finally em C# é usado para executar código que deve ser executado em qualquer caso após o bloco try e possíveis blocos catch, independentemente de uma exceção ter ocorrido ou não.

O papel principal do finally é liberar recursos, fechar arquivos, conexões com bancos de dados, liberar memória e outras operações de limpeza que devem sempre acontecer.

Exemplo:

try
{
    // Código que pode gerar uma exceção
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Erro ao ler o arquivo: " + ex.Message);
}
finally
{
    // Este código será sempre executado, mesmo que nenhuma exceção tenha ocorrido ou tenha sido tratada
    Console.WriteLine("Encerrando o trabalho com o arquivo.");
}

Se uma exceção ocorrer no bloco try e não for capturada, o finally ainda será executado antes que a exceção seja propagada para cima.