Зміст:
Визначення - Що означає нарешті Блок?
Нарешті, блок в контексті C # посилається на блок операторів, які завжди виконуються, незалежно від несподіваних подій або винятків, які можуть статися під час виконання програми. Він необов'язково використовується з блоком "спробувати / зловити" і гарантує виконання будь-якого коду, який повинен бути виконаний перед виходом із блоку "спробувати", незалежно від успіху чи невдачі виконання програми.
Виконання остаточно блоку призначене для випуску ресурсів, таких як підключення до бази даних, які зазвичай доступні в обмеженій кількості. За цим механізмом утилізація ресурсів відбувається раніше, ніж операція доопрацювання сміття, тим самим оптимізуючи пам'ять.
Техопедія пояснює нарешті Блок
Код в остаточному блоці можна використовувати для обробки винятків, як тільки вони виникають, очищення пам'яті, виділеної в блоці "спробувати", або розпорядження об'єктами, що містять зовнішні ресурси (наприклад, ручки файлів), що використовуються в блоці "спробувати". Нарешті блок також полегшує виконання завдань з ведення домашнього господарства, таких як повернення курсора до нормального стану до моменту винятку.
Взагалі, код всередині остаточного блоку виконується, коли управління виходить з пробного блоку в результаті нормального виконання, в результаті виконання оператора "перерва", "goto", "продовження" або "return" або належне виняток із заяви спробу.
Кожного разу, коли в блоці спробу виникає виняток, контроль передається від рядка, який спричинив виняток, до найближчого блоку лову (обробник винятків), а потім до остаточного блоку. Також, коли виняток перекидається в блок лову, керування переноситься на остаточний блок. Таким чином, код, який слідує за рядком, у якому стався виняток, буде пропущений.
Винятки не слід кидати явно в остаточний блок. Якщо виняток виникає під час виконання остаточного блоку, будь-який код після точки, в яку буде викинуто виняток, не виконується, і виняток поширюється на зовнішній блок блоку спробу. Якщо остаточно блок вже обробляє інший виняток, це призводить до припинення обробки поточного винятку.
Слід бути обережним, щоб не переносити явно виконання в або остаточно блоку, оскільки це не є дійсною передачею.