std::unexpected
| Definiert in Header <exception>
|
||
void unexpected();
|
(bis C++11) | |
[[noreturn]] void unexpected();
|
(seit C++11) (bis C++17) (veraltet in C++11) |
|
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 aufgerufen werden.
In beiden Fällen std::unexpected ruft den derzeit installierten std::unexpected_handler. Der Standard-std::unexpected_handler ruft std::terminate.
|
Wenn ein Destruktor den unexpected-Handler während der Stapelentwicklung zurücksetzt und die Entwicklung später dazu führte, dass |
(bis C++11) |
|
Wenn ein Destruktor den unexpected-Handler während der Stapelentwicklung zurücksetzt, ist es unspezifiziert, welcher Handler aufgerufen wird, wenn die Entwicklung später dazu führte, 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) |