Compartir a través de


Restricciones en los controladores de terminación

No puede utilizar una instrucción de goto para ir a un bloque de instrucciones de __try o un bloque de instrucciones de __finally .En su lugar, debe escribir la instrucción bloqueada a través del flujo de control normal.(Puede, sin embargo, saltar fuera de un bloque de instrucciones de __try .) Además, no puede anidar un controlador de excepciones o un controlador de terminación dentro de un bloque de __finally .

Además, algunas clases de código permitidas en un controlador de terminación generan resultados cuestionables, por lo que debe utilizarse con precaución, si en absoluto.Uno es una instrucción de goto aparente de un bloque de instrucciones de __finally .Si el bloque se ejecuta como parte de la terminación normal, nada que ocurre.Pero si el sistema está desenredando la pila, el desenredo detiene, y el control de las mejoras de la función actual como si no hubiera terminación anormal.

Una instrucción de return dentro de un bloque de instrucciones de __finally muestra aproximadamente la misma situación.El Control vuelve al llamador inmediato de la función que contiene el controlador de terminación.Si el sistema desenrollaba la pila, se detiene este proceso, y el programa continúa como si no hubiera habido excepción.

Vea también

Referencia

Escribir un controlador de terminación

Control de excepciones estructurado (C++)