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 y como se implementa en el compilador de optimización de Microsoft C/C++. El compilador interpreta las siguientes palabras clave como parte del mecanismo estructurado de control de excepciones.

Palabra clave Descripción
__Tratar 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.
__Excepto Comienza un bloque de código que se ejecuta solo cuando se produce una excepción dentro de su bloque de __try asociado.
__Finalmente 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 finalización inmediata del bloque de __try sin provocar una terminación anómala y su penalización de rendimiento.

 

El compilador también interpreta las funciones GetExceptionCode, GetExceptionInformation y AbnormalTermination como palabras clave, y su uso fuera de la sintaxis de control de excepciones adecuada genera un error del compilador. Las siguientes son breves descripciones 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 el bloque del controlador de excepciones.
GetExceptionInformation Devuelve un puntero a una estructura 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 dentro del bloque __finally de un controlador de terminación.