std::exception::exception
exception() throw();
|
(1) | (bis C++11) |
exception() noexcept;
|
(seit C++11) (constexpr seit C++26) |
|
exception( const exception& other ) throw();
|
(2) | (bis C++11) |
exception( const exception& other ) noexcept;
|
(seit C++11) (constexpr seit C++26) |
|
Erstellt ein neues Ausnahmeobjekt.
other. Wenn *this und other beide den dynamischen Typ std::exception haben, dann std::strcmp(what(), other.what()) == 0.Parameter
| other | - | eine weitere Ausnahme, um den Inhalt von zuzuweisen |
Hinweise
Da das Kopieren von
std::exception
keine Ausnahmen werfen darf, wird in abgeleiteten Klassen (wie
std::runtime_error
), die eine benutzerdefinierte Diagnosemeldung verwalten müssen, dies typischerweise als Copy-on-Write-String implementiert.
Die Microsoft-Implementierung enthält nicht-standardkonforme Konstruktoren, die Strings akzeptieren, wodurch Instanzen direkt mit einer aussagekräftigen Fehlermeldung geworfen werden können. Die nächstgelegenen Standard-Äquivalente sind std::runtime_error oder std::logic_error .
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 471 | C++98 | es gibt keine Anforderung an what() der Exception-Kopie | hinzugefügt |