Einführung
Es ist eine Standardausnahmeklasse. Alle Objekte, die von Komponenten der Standardbibliothek ausgelöst werden, werden von dieser Klasse abgeleitet. Daher können alle Standardausnahmen abgefangen werden, indem dieser Typ als Referenz abgefangen wird.
Erklärung
Es folgt die Deklaration für std :: exception.
class exception;
Beispiel
Im folgenden Beispiel für std :: exception.
#include <thread>
#include <vector>
#include <iostream>
#include <atomic>
std::atomic_flag lock = ATOMIC_FLAG_INIT;
void f(int n) {
for (int cnt = 0; cnt < 100; ++cnt) {
while (lock.test_and_set(std::memory_order_acquire))
;
std::cout << "Output from thread " << n << '\n';
lock.clear(std::memory_order_release);
}
}
int main() {
std::vector<std::thread> v;
for (int n = 0; n < 10; ++n) {
v.emplace_back(f, n);
}
for (auto& t : v) {
t.join();
}
}
Abgeleitete Typen
Sr.Nr. |
Abgeleitete Typen |
Definition |
1 |
bad_alloc |
Diese Ausnahme wird bei einem Fehler beim Zuweisen von Speicher ausgelöst |
2 |
bad_cast |
Diese Ausnahme wird ausgelöst, wenn die dynamische Umwandlung fehlschlägt |
3 |
bad_exception |
Dies ist eine Ausnahme, die von einem unerwarteten Handler ausgelöst wird |
4 |
bad_function_call |
Diese Ausnahme wird bei einem schlechten Anruf ausgelöst |
5 |
bad_typeid |
Diese Ausnahme wird für die Typ-ID des Nullzeigers ausgelöst |
6 |
bad_weak_ptr |
Es ist ein schlechter schwacher Zeiger |
7 |
ios_base :: Fehler |
Es ist eine Basisklasse für Stream-Ausnahmen |
8 |
Logikfehler |
Es ist eine logische Fehlerausnahme |
9 |
Laufzeit Fehler |
Es ist eine Laufzeitfehlerausnahme |
Abgeleitete Typen (über Logic_error)
Sr.Nr. |
Abgeleitete Typen |
Definition |
1 |
domain_error |
Es ist eine Domänenfehlerausnahme |
2 |
future_error |
Es ist eine zukünftige Fehlerausnahme |
3 |
ungültiges Argument |
Es ist eine ungültige Argumentausnahme |
4 |
length_error |
Es ist eine Längenfehlerausnahme |
5 |
außer Reichweite |
Dies ist eine Ausnahme außerhalb des zulässigen Bereichs |
Abgeleitete Typen (über runtime_error)
Sr.Nr. |
Abgeleitete Typen |
Definition |
1 |
overflow_error |
Es handelt sich um eine Überlauffehlerausnahme |
2 |
range_error |
Es ist eine Bereichsfehlerausnahme |
3 |
Systemfehler |
Es ist eine Systemfehlerausnahme |
4 |
underflow_error |
Es handelt sich um eine Unterlauffehlerausnahme |
Abgeleitete Typen (über bad_alloc)
Sr.Nr. |
Abgeleitete Typen |
Definition |
1 |
bad_array_new_length |
Dies ist eine Ausnahme bei einer schlechten Array-Länge |
Abgeleitete Typen (über system_error, seit C ++ 11)
Sr.Nr. |
Abgeleitete Typen |
Definition |
1 |
ios_base :: Fehler |
Es ist eine Basisklasse für Stream-Ausnahmen |
Mitgliedsfunktionen
Sr.Nr. |
Abgeleitete Typen |
Definition |
1 |
(Konstrukteur) |
Es ist eine Konstruktorausnahme |
2 |
Operator = |
Es ist eine Kopierausnahme |
3 |
Was |
Es wird verwendet, um eine Ausnahme zur Zeichenfolgenidentifizierung abzurufen |
4 |
(Zerstörer) |
Es ist eine Zerstörungsausnahme |