Namespaces
Variants

std::exception:: exception

From cppreference.net
Utilities library
(1)
exception ( ) throw ( ) ;
(jusqu'à C++11)
exception ( ) noexcept ;
(depuis C++11)
(constexpr depuis C++26)
(2)
exception ( const exception & other ) throw ( ) ;
(jusqu'à C++11)
exception ( const exception & other ) noexcept ;
(depuis C++11)
(constexpr depuis C++26)

Construit un nouvel objet d'exception.

1) Constructeur par défaut. what() renvoie une chaîne définie par l'implémentation.
2) Constructeur de copie. Initialise le contenu avec celui de other . Si * this et other ont tous deux le type dynamique std::exception alors std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Paramètres

other - une autre exception pour assigner le contenu de

Notes

Parce que la copie de std::exception n'est pas autorisée à lever des exceptions, lorsque les classes dérivées (telles que std::runtime_error ) doivent gérer un message de diagnostic défini par l'utilisateur, il est généralement implémenté sous forme de chaîne à copie différée.

L'implémentation Microsoft inclut des constructeurs non standard prenant des chaînes de caractères, permettant ainsi de lever directement des instances avec un message d'erreur significatif. Les équivalents standards les plus proches sont std::runtime_error ou std::logic_error .

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 471 C++98 aucune exigence n'est imposée sur what() de la copie d'exception ajoutée