Nous recommandons d’utiliser Visual Studio 2017

set_unexpected (CRT)

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Installe votre propre fonction d’arrêt à être appelé par unexpected.

unexpected_function set_unexpected(  
   unexpected_function unexpFunction   
);  

Paramètres

unexpFunction
Pointeur vers une fonction que vous écrivez pour remplacer le unexpected (fonction).

Retourne un pointeur vers la fonction d’arrêt précédent enregistré par _set_unexpected afin que la fonction précédente peut être restaurée. 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.

Le set_unexpected fonction installe unexpFunction que la fonction appelée par unexpected. unexpectedn’est pas utilisé dans l’implémentation actuelle de la gestion des exceptions C++. Le unexpected_function type est défini dans le Gestionnaire d’exceptions. H comme un pointeur vers une fonction inattendue définis par l’utilisateur, unexpFunction qui renvoie void. Votre personnalisé unexpFunction fonction ne doit pas retourner à 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. unexpectedappelle la dernière fonction donnée comme argument à set_unexpected.

Contrairement à la fonction d’arrêt personnalisés installée par 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 inattendu. Par conséquent, chaque thread est responsable de sa propre gestion inattendue.

Dans l’implémentation actuelle de Microsoft de gestion des exceptions C++, unexpected appelle terminate par défaut et n’est jamais appelé par la bibliothèque d’exécution de la gestion des exceptions. Ne présente aucun avantage particulier à appeler la méthode unexpected plutôt que terminate.

Il existe un seul set_unexpected gestionnaire pour toutes les DLL dynamiquement liés exe ; 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.

RoutineEn-tête requis
set_unexpected<eh.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Routines de gestion des exceptions
abandonner
_get_unexpected
set_terminate
arrêter
inattendue

Afficher: