Sobes.tech
Junior — Middle

В кои ситуации се използва блокът finally при обработка на изключения и каква роля изпълнява?

sobes.tech AI

Отговор от 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 все пак ще се изпълни преди изключението да бъде пренасочено нагоре.