Namespaces
Variants

std::exception:: exception

From cppreference.net
Utilities library
(1)
exception ( ) throw ( ) ;
(bis C++11)
exception ( ) noexcept ;
(seit C++11)
(constexpr seit C++26)
(2)
exception ( const exception & other ) throw ( ) ;
(bis C++11)
exception ( const exception & other ) noexcept ;
(seit C++11)
(constexpr seit C++26)

Konstruiert ein neues Ausnahmebeobjekt.

1) Standardkonstruktor. what() gibt einen implementierungsdefinierten String zurück.
2) Kopierkonstruktor. Initialisiert die Inhalte mit denen von 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