C ++ - Bibliothek - <Ausnahme>

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