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;
}
}
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour