<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
.