Avertissement du compilateur (niveau 1) C4532
'continue' : le blocage de __finally/enfin n’a pas de comportement défini lors de la gestion de l’arrêt
Notes
Le compilateur a rencontré l’une des mot clé suivantes :
à l’origine d’un saut hors d’un ou finally
d’un __finally
bloc lors d’un arrêt anormal.
Si une exception se produit et que la pile est déwound pendant l’exécution des gestionnaires d’arrêt (les __finally
blocs ou les blocs) et que votre code sort d’un __finally
bloc avant la fin du __finally
bloc, le comportement n’est pas défini. Le contrôle peut ne pas revenir au code de déroulement. L’exception peut donc ne pas être gérée correctement.
Si vous devez sauter d’un __finally
bloc, case activée pour un arrêt anormal en premier.
L’option /sdl
du compilateur (Activer des vérifications de sécurité supplémentaires) élève cet avertissement à une erreur.
Exemple
L’exemple suivant génère l’erreur C4532 ; supprimez ou commentez les instructions de saut pour résoudre les avertissements.
// C4532.cpp
// compile with: /W1
// C4532 expected
int main() {
int i;
for (i = 0; i < 10; i++) {
__try {
} __finally {
// Delete the following line to resolve.
continue;
}
__try {
} __finally {
// Delete the following line to resolve.
break;
}
}
}