Обработка и создание исключений
Обновлен: Ноябрь 2007
Программы должны одинаково обрабатывать ошибки, возникающие при исполнении. Среда CLR оказывает существенную помощь при разработке программного обеспечения, устойчивого к сбоям, предоставляя модель, обеспечивающую унифицированную процедуру уведомления программ об ошибках. Все операции среды .NET Framework информируют о сбое посредством порождения исключений.
Традиционно модели обработки ошибок разных языков программирования основываются либо на уникальном для языка способе обнаружения ошибок и отыскании для них обработчиков, либо на механизме обработки ошибок, предоставляемом операционной системой. Среда выполнения реализует обработку исключений с использованием следующих возможностей:
Обработка исключений без учета языка, на котором сгенерировано или обрабатывается данное исключение.
Отсутствие необходимости в использовании определенного синтаксиса для обработки исключений — для каждого языка может применяться свой собственный синтаксис.
Возможность порождения исключений между процессам и даже между компьютерами.
Исключения предоставляют ряд преимуществ по сравнению с другими методами уведомлений об ошибках, такими как коды возврата. Сбои не проходят незамеченными. Недопустимые значения не продолжают распространяться в системе. Нет необходимости в проверке кодов возврата. Код обработки исключений можно очень легко добавить для увеличения надежности программы. Наконец, обработка исключений производится средой выполнения быстрее, чем обработка ошибок C++ на базе Windows.
Поскольку потоки исключений очень просто проходят по блокам как управляемых, так и неуправляемых кодов, среда выполнения может создавать и перехватывать исключения и в управляемом, и в неуправляемом коде. Неуправляемый код может включать и исключения SEH в стиле С++, и HRESULTS из COM.
В этом подразделе
Общие сведения об исключениях
Представлены общие сведения об исключениях среды CLR.Класс Exception и его свойства
Описаны элементы объекта исключения.Иерархия исключений
Описаны исключения, от которых наследуется большинство исключений.Основы обработки исключений
Описаны методы обработки исключений с использованием операторов catch, throw и finally.Лучшие методики обработки исключений
Описаны предлагаемые методы обработки исключений.Обработка исключений COM-взаимодействия
Описаны методы обработки исключений, создаваемых и перехватываемых неуправляемым кодом.
Ссылка
Класс Exception
Справочные сведения по классу, от которого наследуются все исключения.Класс ApplicationException
Справочные сведения по классу, из которого должны создаваться все исключения, порождаемые приложениями.Класс SystemException
Справочные сведения по классу, из которого должны создаваться все исключения, порождаемые системой.
Связанные подразделы
Расширенное COM-взаимодействие
Описано действие исключений между управляемым и неуправляемым кодом.Практическое руководство. Сопоставление значений HRESULT и исключений
Описано сопоставление исключений между управляемым и неуправляемым кодом.