Compartilhar via


Sintaxe do manipulador

Esta seção descreve a sintaxe e o uso do tratamento de exceções estruturadas conforme implementado no Microsoft C/C++ Optimizing Compiler. As palavras-chave a seguir são interpretadas pelo compilador como parte do mecanismo estruturado de manipulação de exceções.

Palavra-chave Descrição
__try Começa um corpo protegido de código. Usado com a palavra-chave __except para construir um manipulador de exceção ou com a palavra-chave __finally para construir um manipulador de terminação.
__except Inicia um bloco de código que é executado somente quando ocorre uma exceção dentro de seu bloco __try associado.
__finally Inicia um bloco de código que é executado sempre que o fluxo de controle deixa seu bloco __try associado.
__leave Permite o término imediato do bloqueio de __try sem causar rescisão anormal e sua penalidade de desempenho.

 

O compilador também interpreta as funções GetExceptionCode, GetExceptionInformation e AbnormalTermination como palavras-chave, e seu uso fora da sintaxe apropriada de manipulação de exceções gera um erro do compilador. A seguir estão breves descrições dessas funções.

Função Descrição
GetExceptionCode Retorna um código que identifica o tipo de exceção. Essa função pode ser chamada somente de dentro da expressão de filtro ou do bloco manipulador de exceções.
GetExceptionInformation Retorna um ponteiro para uma estrutura EXCEPTION_POINTERS que contém ponteiros para o registro de contexto e o registro de exceção. Essa função pode ser chamada somente de dentro da expressão de filtro de um manipulador de exceções.
Rescisão anormal Indica se o fluxo de controle deixou o bloco de __try associado sequencialmente após a execução da última instrução no bloco. Essa função pode ser chamada somente de dentro do bloco __finally de um manipulador de terminação.