std::exception:: exception
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
exception::exception
|
||||
| (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.
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 |