Tartalomjegyzék:
Meghatározás - Mit jelent a kivételkezelés?
A kivételkezelés egy olyan mechanizmus, amelyben egy programozási konstrukciót használnak az alkalmazás végrehajtása során bekövetkezett hiba következetes befogására, elfogására és kezelésére. A .NET-keretrendszer Common Language Runtime (CLR) célja egy kivételkezelési modell használata, amely kivételes objektumokon és védett kódblokkokon alapul.
A CLR-ben alkalmazott kivételkezelési mechanizmus jellemzői a következők:
a) Minden nyelvnek megvan a maga specifikációja a kivételek korlátozások nélküli kezelésére
b) Kivételeket hoznak létre és kezelnek, függetlenül a használt nyelvetől és a kód típusától (kezelt vagy nem kezelt)
c) A kivételek átvihetők a folyamat vagy a gép határain
A Techopedia magyarázza a kivételkezelést
A .NET futásidejű kivételek a System.Exception osztályból származó objektumokként jelennek meg, amelyek tartalmaznak hiba részleteket, ideértve az üzenetet és a kódot, ahol a hiba történt, stb. A "try..catch..finally" konstrukciót használják kivételek kezelésére. Míg a „try” (ahol kivételek várhatók) és a „catch” (ahol a kivételeket kezelik) blokkok kötelezőek, a „végül” (ahol a kódot minden esetben végrehajtják) blokk választható.
Ha összehasonlítjuk a hagyományos módszerekkel - például a visszatérési kód használatával, mint a Component Object Model (COM) és a "go to" utasításokkal, mint a Visual Basic, stb. - végrehajtott hibakezeléssel, a .NET kivételeinek fő előnyei az összes hibák, a visszatérési érték ellenőrzésének folyamatának kiküszöbölése és annak alkalmazása (ha érvénytelen) az alkalmazásokban, használat olyan helyzetekben, ahol nincs visszatérési érték, például konstruktorok, megnövelt megbízhatóság és jobb teljesítmény.
Míg a Java „ellenőrzött” kivételeket nyújt, amelyek segítenek megakadályozni a nem kezelt kivételek előfordulását az összeállítás során, ezeket nem lehet felhasználni olyan hibák esetén, amelyek helyrehozhatatlan hiba. A kivételkezelés a C ++-ban abban különbözik a .NET-től, hogy nincs „végső” blokkja az erőforrások megtisztításához, és a kivétel típusára vonatkozó korlátozások nélkül.