Compartir a través de


Sintaxis del controlador

En esta sección se describe la sintaxis y el uso del control de excepciones estructurados tal como se implementa en el compilador de optimización de Microsoft C/C++. El compilador interpreta las palabras clave siguientes como parte del mecanismo estructurado de control de excepciones.

Palabra clave Descripción
__try Comienza un cuerpo protegido del código. Se usa con la palabra clave __except para construir un controlador de excepciones , o con la palabra clave __finally para construir un controlador de terminación .
__except Comienza un bloque de código que se ejecuta solo cuando se produce una excepción dentro de su bloque de __try asociado.
__finally Comienza un bloque de código que se ejecuta cada vez que el flujo de control deja su bloque de __try asociado.
__leave Permite la terminación inmediata del bloque __try sin causar una terminación anómala y su penalización de rendimiento.

 

El compilador también interpreta el GetExceptionCode, GetExceptionInformationy AnómaloTermination funciona como palabras clave y su uso fuera de la sintaxis de control de excepciones adecuada genera un error del compilador. A continuación se muestran descripciones breves de estas funciones.

Función Descripción
GetExceptionCode Devuelve un código que identifica el tipo de excepción. Solo se puede llamar a esta función desde dentro de la expresión de filtro o desde el bloque del controlador de excepciones.
GetExceptionInformation Devuelve un puntero a una estructura de EXCEPTION_POINTERS que contiene punteros al registro de contexto y al registro de excepción. Solo se puede llamar a esta función desde dentro de la expresión de filtro de un controlador de excepciones.
AnómaloTerminación Indica si el flujo de control dejó el bloque de __try asociado secuencialmente después de ejecutar la última instrucción del bloque. Solo se puede llamar a esta función desde el bloque __finally de un controlador de terminación.