Kivételosztály és tulajdonságok
Az Exception osztály az az alaposztály, amelytől a kivételek öröklődnek. Az osztályhierarchia például InvalidCastException a következő:
Object
Exception
SystemException
InvalidCastException
Az Exception osztály a következő tulajdonságokkal rendelkezik, amelyek megkönnyítik a kivétel megértését.
Tulajdonság neve | Leírás |
---|---|
Data | Olyan IDictionary , amely tetszőleges adatokat tárol kulcs-érték párokban. |
HelpLink | Url-címet (vagy URL-címet) tárolhat egy súgófájlban, amely részletes információkat nyújt a kivétel okáról. |
InnerException | Ez a tulajdonság számos kivétel létrehozásához és megőrzéséhez használható a kivételkezelés során. Ezzel létrehozhat egy új kivételt, amely korábban kifogott kivételeket tartalmaz. Az eredeti kivételt a tulajdonság második kivétele InnerException rögzítheti, így a második kivételt kezelő kód megvizsgálhatja a további információkat. Tegyük fel például, hogy van egy metódusa, amely nem megfelelően formázott argumentumot fogad. A kód megpróbálja beolvasni az argumentumot, de a rendszer kivételt jelez. A metódus elkapja a kivételt, és egy FormatException. Annak érdekében, hogy a hívó meg tudja állapítani a kivétel okát, néha kívánatos, hogy egy metódus elkapjon egy kivételt, amelyet egy segítő rutin dob ki, majd egy kivételt jelez a bekövetkezett hibára. Létre lehet hozni egy új és értelmesebb kivételt, amelyben a belső kivételhivatkozás az eredeti kivételre állítható be. Ezt az értelmesebb kivételt ezután a hívónak is ki lehet dobni. Vegye figyelembe, hogy ezzel a funkcióval összekapcsolt kivételek sorozatát hozhatja létre, amelyek az elsőként kidobott kivétellel végződnek. |
Message | A kivétel okának részleteit tartalmazza. |
Source | Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét. |
StackTrace | Egy veremkövetést tartalmaz, amellyel meghatározható, hogy hol történt hiba. A verem nyomkövetése tartalmazza a forrásfájl nevét és a programsor számát, ha rendelkezésre állnak hibakeresési információk. |
A legtöbb öröklő Exception osztály nem valósít meg további tagokat, és nem biztosít további funkciókat; egyszerűen örököl.Exception Ezért a kivétel legfontosabb információi megtalálhatók a kivételosztályok hierarchiájában, a kivétel neve és a kivételben található információk között.
Azt javasoljuk, hogy csak olyan objektumokat dobjon és fogjon le, amelyekből Exceptionszármazik, de az osztályból Object származó objektumokat kivételként is elvetheti. Vegye figyelembe, hogy nem minden nyelv támogatja a nem származó Exceptionobjektumok dobását és elfogását.