Преглед садржаја:
Дефиниција - Шта на крају значи Блок?
Коначни блок, у контексту Ц #, односи се на блок изјава који се увек извршавају, без обзира на неочекиване догађаје или изузетке који се могу догодити током извршења апликације. Користи се опционално са блоком "пробај / ухвати" и гарантује извршење било којег кода који се мора извршити пре изласка из блока "пробај", без обзира на успех или неуспех извршења апликације.
Извођење коначног блока има за циљ ослобађање ресурса, попут веза са базом података, који су обично доступни у ограниченим количинама. Овим механизмом се одлагање ресурса дешава раније од поступка финализације сакупљача смећа, чиме се оптимизује меморија.
Техопедиа објашњава коначно блок
Код у коначном блоку може се користити за обраду изузетака чим се појаве, очистити меморију додељену у "покушају" блоку или збринути предмете који држе спољне ресурсе (попут руковања датотекама) који се користе у блоку "пробати". Коначни блок такође олакшава обављање послова домаћинства попут враћања курсора у нормално стање пре изузећа.
Опћенито, код унутар коначно блокираног блока се извршава када контрола излази из покушајног блока као резултат нормалног извршавања, као резултат извршења изјаве "бреак", "гото", "настави" или "ретурн" или због изузетак из испробане изјаве.
Кад год се догоди изузетак у покушају блока, контрола прелази из линије која је проузроковала изузетак у најближи блок за хватање (извођач изузетка), а затим на крајњи блок. Такође, када се изузетак пребаци у блок хватања, контрола се преноси на коначно блок. Тако ће се прескочити код који следи линији у којој се догодио изузетак.
Изузеци се не треба експлицитно бацати у коначни блок. Ако се изузетак догоди током извршења коначно блокираног блока, било који код након тачке у коју је изузетак неће се извршити, а изузетак ће се ширити у спољни покушајни блок. Ако коначно блок обрађује другу изузетак, то ће обуставити обраду тренутног изузећа.
Треба водити рачуна да се изричито не изврши извршење у или на крају блока јер то није валидан пренос.