Синтаксис обработчика
В этом разделе описывается синтаксис и использование структурированной обработки исключений, реализованной в компиляторе оптимизации Microsoft C/C++. Следующие ключевые слова интерпретируются компилятором как часть структурированного механизма обработки исключений.
Ключевое слово | Описание |
---|---|
__try | Начинает защищенный текст кода. Используется с ключевым словом __except для создания обработчика исключенийили с ключевым словом __finally для создания обработчика завершения. |
__except | Начинает блок кода, который выполняется только при возникновении исключения в связанном __try блоке. |
__finally | Начинает блок кода, который выполняется всякий раз, когда поток элемента управления покидает связанный __try блок. |
__leave | Позволяет немедленно прекратить работу блока __try без возникновения ненормального завершения и его штрафа за производительность. |
Компилятор также интерпретирует GetExceptionCode, GetExceptionInformation, а также аномальных функций в качестве ключевых слов, а их использование за пределами соответствующего синтаксиса обработки исключений приводит к ошибке компилятора. Ниже приведены краткие описания этих функций.
Функция | Описание |
---|---|
GetExceptionCode | Возвращает код, определяющий тип исключения. Эту функцию можно вызывать только из выражения фильтра или блока обработчика исключений. |
GetExceptionInformation | Возвращает указатель на структуру EXCEPTION_POINTERS, содержащую указатели на запись контекста и запись исключения. Эту функцию можно вызывать только из выражения фильтра обработчика исключений. |
аномальное | Указывает, оставил ли поток управления связанный блок __try последовательно после выполнения последней инструкции в блоке. Эту функцию можно вызывать только из __finally блока обработчика завершения. |