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 ҳамон вақт пеш аз интиқоли истисно ба боло иҷро мешавад.