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 всё равно выполнится перед тем, как исключение будет проброшено дальше.