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