Sobes.tech
Back to questions
Junior — Middle
59

В каких ситуациях используется блок finally в обработке исключений, и какую роль он выполняет?

Answer from AI

sobes.tech AI

Блок finally в C# используется для выполнения кода, который должен быть выполнен в любом случае после блока try и возможных блоков catch, независимо от того, было ли исключение или нет.

Основная роль finally — освобождение ресурсов, закрытие файлов, соединений с базой данных, освобождение памяти и другие операции очистки, которые должны произойти всегда.

Пример:

try
{
    // Код, который может вызвать исключение
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Ошибка чтения файла: " + ex.Message);
}
finally
{
    // Этот код выполнится всегда, даже если исключение не было или было обработано
    Console.WriteLine("Завершение работы с файлом.");
}

Если в блоке try происходит исключение, и оно не перехвачено, finally всё равно выполнится перед тем, как исключение будет проброшено дальше.