AbnormalTermination macro)
Indique si le bloc _ _ try d’un gestionnaire de terminaisons se termine normalement. La fonction ne peut être appelée qu’à partir du bloc _ _ finally d’un gestionnaire de terminaisons.
Notes
Le compilateur d’optimisation Microsoft C/C++ interprète cette fonction comme un mot clé, et son utilisation en dehors de la syntaxe de gestion des exceptions appropriée génère une erreur du compilateur.
Syntaxe
BOOL AbnormalTermination(void);
Paramètres
Cette macro n’a pas de paramètres.
Valeur de retour
Si le bloc _ _ try s’est arrêté anormalement, la valeur de retour est différente de zéro.
Si le bloc _ _ try s’est arrêté normalement, la valeur de retour est zéro.
Notes
Le bloc _ _ try se termine normalement uniquement si l’exécution laisse le bloc séquentiellement après l’exécution de la dernière instruction dans le bloc. Les instructions (telles que Return, goto, continue ou break) qui forcent l’exécution à quitter le bloc _ _ try entraînent un arrêt anormal du bloc. C’est le cas même si une telle instruction est la dernière instruction du bloc _ _ try .
Un arrêt anormal d’un bloc _ _ try amène le système à parcourir tous les frames de pile pour déterminer si des gestionnaires de terminaison doivent être appelés. Cela peut entraîner l’exécution de centaines d’instructions. il est donc important d’éviter l’arrêt anormal d’un bloc _ _ try en raison d’une instruction Return, goto, continue ou break . Notez que ces instructions ne génèrent pas d’exception, même si l’arrêt est anormal.
Pour éviter un arrêt anormal, l’exécution doit se poursuivre jusqu’à la fin du bloc. Vous pouvez également exécuter l’instruction _ _ Leave . L’instruction _ _ Leave autorise l’arrêt immédiat du bloc _ _ try sans entraîner un arrêt anormal et une baisse des performances. Consultez la documentation de votre compilateur pour déterminer si l’instruction _ _ Leave est prise en charge.
Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows [Applications de bureau XP uniquement] |
| Serveur minimal pris en charge |
Windows Serveur 2003 [ applications de bureau uniquement] |