Tartalomjegyzék:
Meghatározás - Mit jelent a Végül blokk?
A végső blokk a C # összefüggésben olyan utasítások blokkjára utal, amelyeket mindig végrehajtanak, függetlenül attól, hogy váratlan események vagy kivételek fordulhatnak elő az alkalmazás végrehajtása során. Opcionálisan a "try / catch" blokkban használható, és garantálja minden olyan kód végrehajtását, amelyet a "try" blokkból való kilépés előtt végre kell hajtani, függetlenül az alkalmazás végrehajtásának sikertől vagy kudarcától.
Az utolsó blokk végrehajtása az erőforrások, például az adatbázis-kapcsolatok felszabadítását célozza, amelyek általában korlátozott mennyiségben érhetők el. Ezzel a mechanizmussal az erőforrások selejtezése korábban történik, mint a szemétszedő befejező művelete, ezáltal optimalizálva a memóriát.
A Techopedia magyarázza a Végül Blokkot
A végső blokkban szereplő kód felhasználható a kivételek kezelésére, amint azok előfordulnak, megtisztíthatja a "try" blokkban lefoglalt memóriát, vagy megsemmisítheti az "try" blokkban használt külső erőforrásokat (például fájlkezelőket) tároló objektumokat. Az utolsó blokk megkönnyíti a takarítási feladatok elvégzését is, például a kurzor visszaállítását a kivétel időpontja előtt normál állapotba.
Általában a végső blokkban lévő kód akkor kerül végrehajtásra, amikor a vezérlés normál végrehajtás eredményeként kilép egy próbablokkból, egy "break", "goto", "folytatás" vagy "return" utasítás végrehajtása vagy esedékesség eredményeként kivételként a try utasításból.
Amikor kivétel történik a próbablokkban, a vezérlés a kivételt okozó vonaltól a legközelebbi fogási blokkig (kivételkezelő), majd az utolsó blokkig halad. Ezenkívül, amikor egy kivételt visszautasítanak egy fogási blokkban, a vezérlés átvitele a végső blokkba. Így a kivétel sorát követő kód átugorásra kerül.
A kivételeket nem szabad kifejezetten egy végleges blokkba dobni. Ha kivétel történik egy végleges blokk végrehajtása során, akkor a kivétel dobásának pontja utáni bármelyik kód nem kerül végrehajtásra, és a kivétel továbbterjed a külső körülvevő kísérleti blokkba. Ha az utolsó blokk már egy másik kivételt kezel, ez a jelenlegi kivétel feldolgozásának megszakítását eredményezi.
Vigyázzon arra, hogy a végrehajtás kifejezetten ne kerüljön át a végleges blokkba, vagy az onnan, mert ez nem érvényes átvitel.
