Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс Exception является базовым классом, из которого наследуются исключения. Например, иерархия InvalidCastException классов выглядит следующим образом:
Object
Exception
SystemException
InvalidCastException
Класс Exception имеет следующие свойства, которые помогают упростить понимание исключения.
Название свойства | Описание |
---|---|
Data | Объект IDictionary, содержащий произвольные данные в парах ключ-значение. |
HelpLink | Может содержать URL-адрес (или URN) к файлу справочной системы, который предоставляет подробные сведения о причине исключения. |
InnerException | Это свойство можно использовать для создания и сохранения ряда исключений во время обработки исключений. Его можно использовать для создания нового исключения, содержащего ранее обработанные исключения. Исходное исключение может быть записано с помощью второго исключения в свойстве InnerException, что позволяет коду, обрабатывающему второе исключение, проверять дополнительные сведения. Например, предположим, что у вас есть метод, который получает аргумент, который неправильно отформатирован. Код пытается прочитать аргумент, но создается исключение. Метод перехватывает исключение и выбрасывает исключение FormatException. Чтобы улучшить способность вызывающей стороны определить причину возникновения исключения, иногда желательно, чтобы метод перехватил исключение, вызванное вспомогательной процедурой, а затем выбросил исключение, лучше отражающее возникшую ошибку. Можно создать новое и более понятное исключение, где внутренняя ссылка на исключение может быть задана в исходном исключении. Это более значимое исключение затем может быть выброшено вызывающей стороне. Обратите внимание, что с помощью этой функции можно создать ряд связанных исключений, заканчивающихся исключением, которое было вызвано первым. |
Message | Содержит сведения о причине исключения. |
Source | Возвращает или задает имя приложения или объекта, вызывающего ошибку. |
StackTrace | Содержит трассировку стека, которую можно использовать для определения места возникновения ошибки. Трассировка стека включает имя исходного файла и номер строки программы, если доступны сведения об отладке. |
Большинство классов, наследующихся от Exception, не реализуют дополнительные члены или не предоставляют дополнительные функциональные возможности; они просто наследуются от Exception. Поэтому наиболее важные сведения об исключении можно найти в иерархии классов исключений, имени исключения и информации, содержащейся в исключении.
Рекомендуется выбрасывать и перехватывать только объекты, производные от Exception, но можно бросать любой объект, производный от класса Object, как исключение. Обратите внимание, что не все языки поддерживают выбрасывание и обработку объектов, которые не производны от Exception.