Compartilhar via


Macro AbnormalTermination

Indica se o bloco __try de um manipulador de terminação foi encerrado normalmente. A função só pode ser chamada de dentro do bloco __finally de um manipulador de terminação.

Observação

O Compilador de Otimização do Microsoft C/C++ interpreta essa função como uma palavra-chave e seu uso fora da sintaxe de tratamento de exceção apropriada gera um erro do compilador.

Sintaxe

BOOL AbnormalTermination(void);

Parâmetros

Essa macro não tem parâmetros.

Valor retornado

Se o bloco __try terminar de forma anormal, o valor retornado será diferente de zero.

Se o bloco __try terminar normalmente, o valor retornado será zero.

Comentários

O bloco __try termina normalmente somente se a execução deixar o bloco sequencialmente após a execução da última instrução no bloco. Instruções (como return, goto, continue ou break) que fazem com que a execução deixe o bloco __try resulta em encerramento anormal do bloco. Esse é o caso, mesmo que essa instrução seja a última instrução no bloco __try .

O encerramento anormal de um bloco de __try faz com que o sistema pesquise para trás em todos os quadros de pilha para determinar se algum manipulador de terminação deve ser chamado. Isso pode resultar na execução de centenas de instruções, portanto, é importante evitar o encerramento anormal de um bloco de __try devido a uma instrução return, goto, continue ou break . Observe que essas instruções não geram uma exceção, mesmo que a terminação seja anormal.

Para evitar o encerramento anormal, a execução deve continuar até o final do bloco. Você também pode executar a instrução __leave . A instrução __leave permite o encerramento imediato do bloco de __try sem causar encerramento anormal e sua penalidade de desempenho. Verifique a documentação do compilador para determinar se há suporte para a instrução __leave .

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]

Confira também

Funções estruturadas de tratamento de exceções

Visão geral do tratamento de exceções estruturadas