Namespaces
Variants

std::exception::exception

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (grundlegende Typen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programmdienstprogramme
Variadische Funktionen
Koroutinenunterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
 
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.

1) Standardkonstruktor. what() gibt eine implementierungsdefinierte Zeichenkette zurück.
2) Kopierkonstruktor. Initialisiert den Inhalt mit dem 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