Partager via


<exception>, typedefs

exception_ptr

Type qui décrit un pointeur vers une exception.

typedef unspecified exception_ptr;

Notes

Une classe interne non spécifiée utilisée pour implémenter le type exception_ptr.

Utilisez un objet exception_ptr pour référencer l'exception actuelle ou une instance d'une exception spécifiée par l'utilisateur. Dans l’implémentation Microsoft, une exception est représentée par une structure EXCEPTION_RECORD. Chaque objet exception_ptr inclut un champ de référence d'exception qui pointe vers une copie de la structure EXCEPTION_RECORD qui représente l'exception.

Lorsque vous déclarez une variable exception_ptr, la variable n'est associée à aucune exception. Autrement dit, son champ de référence d'exception est NULL. Ce type d’objet exception_ptr est appelé exception_ptr null.

Utilisez la fonction current_exception ou make_exception_ptr pour assigner une exception à un objet exception_ptr. Lorsque vous assignez une exception à une variable exception_ptr, le champ de référence de l'exception de la variable pointe vers une copie de l'exception. Si la mémoire est insuffisante pour copier l’exception, le champ de référence d’exception pointe vers une copie d’une exception std::bad_alloc. Si la ou make_exception_ptr la current_exception fonction ne peut pas copier l’exception pour une autre raison, la fonction appelle la terminate fonction CRT pour quitter le processus actuel.

En dépit de son nom, un objet exception_ptr n'est pas lui-même un pointeur. Il ne respecte pas la sémantique des pointeurs et ne peut pas être utilisé avec les accès des membres pointeurs (->) ou des opérateurs d’indirection (*). L'objet exception_ptr n'a aucune donnée membre ou fonction membre publique.

Comparaisons :

Vous pouvez utiliser les opérateurs Égal à (==) et Non égal à (!=) pour comparer deux objets exception_ptr. Les opérateurs ne comparent pas la valeur binaire (modèle binaire) des structures EXCEPTION_RECORD qui représentent les exceptions. À la place, les opérateurs comparent les adresses dans le domaine de référence d'exception des objets exception_ptr. Par conséquent, une exception exception_ptr null et la valeur NULL sont considérées comme égales.

terminate_handler

Type qui décrit un pointeur vers une fonction appropriée pour une utilisation en tant que terminate_handler.

typedef void (*terminate_handler)();

Notes

Le type décrit un pointeur vers une fonction appropriée devant être utilisée en tant que gestionnaire d'arrêt.

Exemple

Consultez set_terminate pour obtenir un exemple d’utilisation de terminate_handler.

unexpected_handler

Le type décrit un pointeur vers une fonction pouvant être utilisée comme unexpected_handler.

typedef void (*unexpected_handler)();

Exemple

Consultez set_unexpected pour obtenir un exemple d’utilisation de unexpected_handler.