Restrictions sur les gestionnaires de terminaisons
Vous ne pouvez pas utiliser une instruction d' goto accéder dans un bloc d'instructions d' __try ou un bloc d'instructions d' __finally .À la place, vous devez écrire le bloc d'instructions via le flux de contrôle normal.(Vous pouvez, toutefois, saut en dehors d'un bloc d'instructions d' __try .) En outre, vous ne pouvez pas imbriquer un gestionnaire d'exceptions ou un gestionnaire de terminaisons à l'intérieur d'un bloc d' __finally .
En outre, certains genres de code autorisés dans un gestionnaire de terminaisons produisent des résultats incertains, vous devez les utiliser avec précaution, le cas échéant.Il est une instruction d' goto qui ignore d'un bloc d'instructions d' __finally .Si le bloc s'exécute dans le cadre de l'arrêt normal, rien inhabituel ne se produit.Mais si le système déroule la pile, cette les points les déroulant, et le contrôle de gains de fonction actuelle comme s'il n'y a pas eu d'arrêt anormal.
Une instruction d' return à l'intérieur d'un bloc d'instructions d' __finally expose environ la même situation.Le contrôle retourne à l'appelant immédiat de la fonction contenant le gestionnaire de terminaisons.Si le système déroulait la pile, ce processus est désactivé, et le programme continue comme s'il n'y a eu aucune exception levée.