Udostępnij za pośrednictwem


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 .

Zobacz też