std::exception
| Definiert in Header <exception> |
||
| class exception; |
||
Bietet eine konsistente Schnittstelle zur Fehlerbehandlung durch den throw-Ausdruck.
Alle von der Standardbibliothek generierten Ausnahmen erben von std::exception.
|
Alle Member-Funktionen von |
(seit C++26) |
Inhalt |
[bearbeiten] Member-Funktionen
| konstruiert das Ausnahmeobjekt (öffentliche Memberfunktion) | |
| [virtuell] |
zerstört das Ausnahmeobjekt (virtuelle public Member-Funktion) |
| kopiert das Ausnahmeobjekt (public Member-Funktion) | |
| [virtuell] |
gibt einen erklärenden String zurück (virtuelle public Member-Funktion) |
[bearbeiten] Standard-Ausnahmeanforderungen
Jede Standardbibliotheksklasse T, die von std::exception abgeleitet ist, hat die folgenden öffentlich zugänglichen Member-Funktionen, von denen jede nicht mit einer Ausnahme beendet wird(bis C++11)eine nicht-werfende Ausnahme-Spezifikation hat(seit C++11)
- Standardkonstruktor (sofern keine anderen Konstruktoren bereitgestellt werden)
- Kopierkonstruktor
- Kopierzuweisungsoperator
Der Kopierkonstruktor und der Kopierzuweisungsoperator erfüllen die folgende Nachbedingung
- Wenn zwei Objekte lhs und rhs beide den dynamischen Typ
Thaben und lhs eine Kopie von rhs ist, dann ist std::strcmp(lhs.what(), rhs.what()) gleich 0.
Die Member-Funktion what() jedes solchen T erfüllt die für std::exception::what() spezifizierten Einschränkungen.
[bearbeiten] Standard-Ausnahmen
- invalid_argument
- domain_error
- length_error
- out_of_range
- future_error (seit C++11)
- range_error
- overflow_error
- underflow_error
- regex_error (seit C++11)
- system_error (seit C++11)
- ios_base::failure (seit C++11)
- filesystem::filesystem_error (seit C++17)
- tx_exception (TM TS)
- nonexistent_local_time (seit C++20)
- ambiguous_local_time (seit C++20)
- format_error (seit C++20)
- bad_any_cast (seit C++17)
- bad_optional_access (seit C++17)
- bad_expected_access (seit C++23)
- bad_weak_ptr (seit C++11)
- bad_function_call (seit C++11)
- bad_alloc
- bad_array_new_length (seit C++11)
- bad_exception
- ios_base::failure (bis C++11)
- bad_variant_access (seit C++17)
[bearbeiten] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_constexpr_exceptions |
202411L |
(C++26) | constexpr für Ausnahme-Typen |
[bearbeiten] Defect Reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 471 | C++98 | Es gab keine Anforderung an Standardbibliotheksklassen, die von std::exception abgeleitet sind |
hinzugefügt |