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


Синтаксис обработчика

В этом разделе описывается синтаксис и использование структурированной обработки исключений, реализованной в компиляторе оптимизации Microsoft C/C++. Следующие ключевые слова интерпретируются компилятором как часть структурированного механизма обработки исключений.

Ключевое слово Описание
__try Начинает защищенный текст кода. Используется с ключевым словом __except для создания обработчика исключенийили с ключевым словом __finally для создания обработчика завершения.
__except Начинает блок кода, который выполняется только при возникновении исключения в связанном __try блоке.
__finally Начинает блок кода, который выполняется всякий раз, когда поток элемента управления покидает связанный __try блок.
__leave Позволяет немедленно прекратить работу блока __try без возникновения ненормального завершения и его штрафа за производительность.

 

Компилятор также интерпретирует GetExceptionCode, GetExceptionInformation, а также аномальных функций в качестве ключевых слов, а их использование за пределами соответствующего синтаксиса обработки исключений приводит к ошибке компилятора. Ниже приведены краткие описания этих функций.

Функция Описание
GetExceptionCode Возвращает код, определяющий тип исключения. Эту функцию можно вызывать только из выражения фильтра или блока обработчика исключений.
GetExceptionInformation Возвращает указатель на структуру EXCEPTION_POINTERS, содержащую указатели на запись контекста и запись исключения. Эту функцию можно вызывать только из выражения фильтра обработчика исключений.
аномальное Указывает, оставил ли поток управления связанный блок __try последовательно после выполнения последней инструкции в блоке. Эту функцию можно вызывать только из __finally блока обработчика завершения.