Właściwości i klasy wyjątków
Klasa Exception jest klasą bazową, z której dziedziczą wyjątki. Na przykład InvalidCastException hierarchia klas jest następująca:
Object
Exception
SystemException
InvalidCastException
Klasa Exception ma następujące właściwości, które ułatwiają zrozumienie wyjątku.
Nazwa właściwości | Opis |
---|---|
Data | Element IDictionary , który przechowuje dowolne dane w parach klucz-wartość. |
HelpLink | Może przechowywać adres URL (lub URN) w pliku pomocy, który zawiera obszerne informacje o przyczynie wyjątku. |
InnerException | Ta właściwość może służyć do tworzenia i zachowywania serii wyjątków podczas obsługi wyjątków. Można go użyć do utworzenia nowego wyjątku zawierającego wcześniej przechwycone wyjątki. Oryginalny wyjątek może zostać przechwycony przez drugi wyjątek we InnerException właściwości, umożliwiając kod obsługujący drugi wyjątek w celu zbadania dodatkowych informacji. Załóżmy na przykład, że masz metodę, która otrzymuje argument, który jest nieprawidłowo sformatowany. Kod próbuje odczytać argument, ale zgłaszany jest wyjątek. Metoda przechwytuje wyjątek i zgłasza błąd FormatException. Aby poprawić zdolność obiektu wywołującego do określenia przyczyny zgłoszenia wyjątku, czasami pożądane jest, aby metoda przechwyciła wyjątek zgłoszony przez procedurę pomocnika, a następnie zgłosić wyjątek bardziej wskazujący na błąd, który wystąpił. Można utworzyć nowy i bardziej znaczący wyjątek, w którym można ustawić odwołanie do wyjątku wewnętrznego. Ten bardziej zrozumiały wyjątek można następnie zgłosić do wywołującego. Należy pamiętać, że za pomocą tej funkcji można utworzyć szereg połączonych wyjątków kończących się wyjątkiem, który został zgłoszony jako pierwszy. |
Message | Zawiera szczegółowe informacje o przyczynie wyjątku. |
Source | Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd. |
StackTrace | Zawiera ślad stosu, którego można użyć do określenia, gdzie wystąpił błąd. Ślad stosu zawiera nazwę pliku źródłowego i numer wiersza programu, jeśli są dostępne informacje o debugowaniu. |
Większość klas dziedziczynych z Exception klasy nie implementuje dodatkowych elementów członkowskich ani nie udostępnia dodatkowych funkcji; po prostu dziedziczą z Exceptionklasy . Dlatego najważniejsze informacje dotyczące wyjątku można znaleźć w hierarchii klas wyjątków, nazwy wyjątku i informacji zawartych w wyjątku.
Zalecamy zgłaszanie i przechwytywanie tylko obiektów, które pochodzą z Exceptionklasy , ale można zgłosić dowolny obiekt pochodzący z Object klasy jako wyjątek. Należy pamiętać, że nie wszystkie języki obsługują zgłaszanie i przechwytywanie obiektów, które nie pochodzą z Exceptionklasy .