Třída výjimek a vlastnosti
Třída Exception je základní třída, ze které dědí výjimky. Většina objektů výjimek jsou instancemi některé z odvozených tříd z Exception, ale můžete vyvolat libovolný objekt, který je odvozen ze třídy Object jako výjimku. Všimněte si, že ne všechny jazyky podporují vyvolávání a zachycování objektů, které nejsou odvozeny z Exception. V téměř všech případech se doporučuje vyvolávání a zachycení pouze objektů Exception.
Třída Exception má několik vlastností, které usnadňují porozumění výjimce. Tyto vlastnosti zahrnují:
Vlastnost StackTrace.
Tato vlastnost obsahuje trasování zásobníku, které lze použít k určení, kde nastala chyba. Trasování zásobníku obsahuje název zdrojového souboru a číslo řádku, pokud jsou k dispozici ladicí informace.
Vlastnost InnerException.
Tato vlastnost slouží k vytvoření a zachování posloupnosti výjimek během zpracování výjimek. Můžete tuto vlastnost použít k vytvoření nové výjimky, která obsahuje dříve zachycené výjimky. Původní výjimku lze zachytit druhou výjimkou ve vlastnosti InnerException, což umožňuje kódu, který zpracovává druhou výjimku zjistit další informace.
Předpokládejme například, že máte metodu, která načte soubor a formátuje data. Kód se pokusí číst soubor, ale je vyvolána FileException. Metoda zachytí FileException a vyvolá BadFormatException. V tomto případě mohou být FileException uloženy ve vlastnosti InnerException od BadFormatException.
Chcete-li zlepšit schopnost volajícího pro zjištění důvodu, proč je vyvolána výjimka, je někdy pro metodu žádoucí zachytit výjimku vyvolánou pomocnou rutinou a poté vyvolat výjimku, která lépe popisuje chybu, která se vyskytla. Mohou být vytvořeny nové a smysluplnější výjimky, kde odkaz na vnitřní výjimku může být nastaven na původní výjimku. Tato smysluplnější výjimka může být poté vyvolána volajícímu. Všimněte si, že touto funkcí můžete vytvořit řadu propojených výjimek, která končí výjimkou, která byla vyvolána jako první.
Vlastnost Message.
Tato vlastnost poskytuje informace o příčině výjimky. Message je v jazyce zadána vlastností Thread.CurrentUICulture vlákna, které vyvolá výjimku.
Vlastnost HelpLink.
Tato vlastnost může obsahovat adresu URL (nebo název URN) za účelem pomoci souboru, který poskytuje podrobné informace o příčině výjimky.
Vlastnost Data.
Tato vlastnost je IDictionary, který může pojmout libovolné data ve dvojici klíč–hodnota.
Většina tříd, které dědí z Exception neimplementuje další členy nebo neposkytuje další funkce. Jednoduše dědí z Exception. Proto nejdůležitější informace o výjimce najdete v hierarchii výjimek, názvu výjimky a informacích obsažených ve výjimce.