Obsah:
Definícia - Čo znamená konečne blok?
Konečný blok v kontexte C # sa vzťahuje na blok príkazov, ktoré sa vždy vykonávajú, bez ohľadu na neočakávané udalosti alebo výnimky, ktoré sa môžu vyskytnúť počas vykonávania aplikácie. Používa sa voliteľne s blokom „try / catch“ a zaručuje vykonanie ľubovoľného kódu, ktorý musí byť vykonaný pred ukončením bloku „try“, bez ohľadu na úspech alebo zlyhanie vykonávania aplikácie.
Účelom vykonania posledného bloku je uvoľniť prostriedky, ako sú databázové pripojenia, ktoré sú zvyčajne k dispozícii v obmedzenom množstve. Týmto mechanizmom dochádza k likvidácii zdrojov skôr, ako je dokončovacia operácia zberača odpadu, čím sa optimalizuje pamäť.
Techopedia vysvetľuje nakoniec blok
Kód v konečnom bloku je možné využiť na spracovanie výnimiek, akonáhle sa vyskytnú, na vyčistenie pamäte pridelenej v bloku „vyskúšať“ alebo na zneškodnenie objektov s externými zdrojmi (ako sú popisovače súborov) použité v bloku „vyskúšať“. A konečne blok tiež uľahčuje vykonávanie domácich úloh, ako je resetovanie kurzora do normálneho stavu pred časom výnimky.
Všeobecne sa kód v konečnom bloku vykonáva, keď kontrola opúšťa pokusný blok v dôsledku normálneho vykonávania, ako výsledok vykonávania príkazu „break“, „goto“, „pokračovať“ alebo „návrat“ alebo splatného na výnimku z príkazu try.
Vždy, keď sa v bloku try vyskytne výnimka, riadenie prechádza z línie, ktorá spôsobila výnimku, do najbližšieho blokovacieho bloku (obsluha výnimky) a potom do konečného bloku. Tiež, keď sa výnimka vyhodí späť v blokovacom bloku, riadenie sa presunie do konečného bloku. Kód, ktorý nasleduje za riadkom, v ktorom sa vyskytla výnimka, bude vynechaný.
Výnimky by sa nemali explicitne hodiť v konečnom bloku. Ak sa počas vykonávania posledného bloku vyskytne výnimka, žiadny kód po vyvolaní výnimky sa nevykoná a výnimka sa rozšíri do vonkajšieho uzatváracieho bloku vyskúšania. Ak už konečný blok spracováva ďalšiu výnimku, výsledkom bude ukončenie spracovania súčasnej výnimky.
Malo by sa dbať na to, aby nedošlo k výslovnému prenosu výkonu do alebo z posledného bloku, pretože nejde o platný prevod.