std:: unexpected
|
Definiert im Header
<exception>
|
||
|
void
unexpected
(
)
;
|
(bis C++11) | |
|
[
[
noreturn
]
]
void
unexpected
(
)
;
|
(veraltet in C++11)
(entfernt in C++17) |
|
std::unexpected()
wird von der C++-Laufzeitumgebung aufgerufen, wenn eine
dynamische Ausnahmespezifikation
verletzt wird: Eine Ausnahme wird von einer Funktion geworfen, deren Ausnahmespezifikation Ausnahmen dieses Typs verbietet.
std::unexpected()
kann auch direkt vom Programm aus aufgerufen werden.
In beiden Fällen ruft
std::unexpected
den aktuell installierten
std::unexpected_handler
auf. Der Standard-
std::unexpected_handler
ruft
std::terminate
auf.
|
Wenn ein Destruktor den unexpected-Handler während Stack-Unwinding zurücksetzt und das Unwinding später dazu führt, dass
|
(bis C++11) |
|
Wenn ein Destruktor den unexpected-Handler während Stack-Unwinding zurücksetzt, ist nicht spezifiziert, welcher Handler aufgerufen wird, wenn das Unwinding später dazu führt, dass
|
(seit C++11) |
Exceptions
Wirf jede Ausnahme, die vom derzeit installierten std::unexpected_handler geworfen wird.
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 2111 | C++11 |
Effekt des Aufrufs von
std::set_unexpected
während Stack-
Unwinding unterscheidet sich von C++98 und bricht einige ABIs |
als unspezifiziert festgelegt |
Siehe auch
|
(C++23)
|
dargestellt als ein unerwarteter Wert
(Klassen-Template) |
|
(deprecated in C++11)
(removed in C++17)
|
der Typ der Funktion, die aufgerufen wird durch
std::unexpected
(Typdefinition) |