Поделиться через


Обработка и создание исключений

Обновлен: Ноябрь 2007

Программы должны одинаково обрабатывать ошибки, возникающие при исполнении. Среда CLR оказывает существенную помощь при разработке программного обеспечения, устойчивого к сбоям, предоставляя модель, обеспечивающую унифицированную процедуру уведомления программ об ошибках. Все операции среды .NET Framework информируют о сбое посредством порождения исключений.

Традиционно модели обработки ошибок разных языков программирования основываются либо на уникальном для языка способе обнаружения ошибок и отыскании для них обработчиков, либо на механизме обработки ошибок, предоставляемом операционной системой. Среда выполнения реализует обработку исключений с использованием следующих возможностей:

  • Обработка исключений без учета языка, на котором сгенерировано или обрабатывается данное исключение.

  • Отсутствие необходимости в использовании определенного синтаксиса для обработки исключений — для каждого языка может применяться свой собственный синтаксис.

  • Возможность порождения исключений между процессам и даже между компьютерами.

Исключения предоставляют ряд преимуществ по сравнению с другими методами уведомлений об ошибках, такими как коды возврата. Сбои не проходят незамеченными. Недопустимые значения не продолжают распространяться в системе. Нет необходимости в проверке кодов возврата. Код обработки исключений можно очень легко добавить для увеличения надежности программы. Наконец, обработка исключений производится средой выполнения быстрее, чем обработка ошибок C++ на базе Windows.

Поскольку потоки исключений очень просто проходят по блокам как управляемых, так и неуправляемых кодов, среда выполнения может создавать и перехватывать исключения и в управляемом, и в неуправляемом коде. Неуправляемый код может включать и исключения SEH в стиле С++, и HRESULTS из COM.

В этом подразделе

Ссылка

  • Класс Exception
    Справочные сведения по классу, от которого наследуются все исключения.

  • Класс ApplicationException
    Справочные сведения по классу, из которого должны создаваться все исключения, порождаемые приложениями.

  • Класс SystemException
    Справочные сведения по классу, из которого должны создаваться все исключения, порождаемые системой.

Связанные подразделы