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. |