Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Installe votre propre fonction d’arrêt qui doit être appelée par unexpected.
Syntaxe
unexpected_function set_unexpected( unexpected_function unexpFunction );
Paramètres
unexpFunction
Pointeur désignant une fonction que vous écrivez pour remplacer la fonction unexpected.
Valeur retournée
Retourne un pointeur désignant la précédente fonction d’arrêt inscrite par _set_unexpected, si bien que la fonction précédente peut être restaurée ultérieurement. Si aucune fonction précédente n’a été définie, la valeur de retour peut être utilisée pour restaurer le comportement par défaut ; cette valeur peut être NULL.
Notes
La fonction set_unexpected installe unexpFunction comme fonction appelée par unexpected. unexpected n’est pas utilisé dans l’implémentation actuelle de gestion des exceptions C++. Le type unexpected_function est défini dans EH.H comme pointeur vers une fonction inattendue défini par l’utilisateur, unexpFunction qui retourne void. Votre fonction personnalisée unexpFunction ne doit pas revenir à son appelant.
typedef void ( *unexpected_function )( );
Par défaut, unexpected appelle terminate. Vous pouvez modifier ce comportement par défaut en écrivant votre propre fonction d’arrêt et en appelant set_unexpected avec le nom de votre fonction comme argument. unexpected appelle la dernière fonction transmise comme argument à set_unexpected.
Contrairement à la fonction d’arrêt personnalisée dont l’installation résulte d’un appel à set_terminate, une exception peut être levée à partir de unexpFunction.
Dans un environnement multithread, les fonctions inattendues sont gérées séparément pour chaque thread. Chaque nouveau thread doit installer sa propre fonction inattendue. Par conséquent, chaque thread est responsable de sa propre gestion inattendue.
Dans l’implémentation Microsoft actuelle de gestion des exceptions C++, unexpected appelle par défaut la fonction terminate, qui n’est jamais appelée par la bibliothèque runtime de gestion des exceptions. Il n’y a pas d’avantage particulier à appeler unexpected plutôt qu’à terminate.
Il existe un seul set_unexpected gestionnaire pour toutes les DLL ou EXEs liées dynamiquement ; même si vous appelez set_unexpected votre gestionnaire peut être remplacé par un autre ou que vous remplacez un gestionnaire défini par une autre DLL ou EXE.
Spécifications
| Routine | En-tête requis |
|---|---|
set_unexpected |
<eh.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Voir aussi
Routines de gestion des exceptions
abort
_get_unexpected
set_terminate
terminate
unexpected