Diagnostik-Bibliothek
Inhalt |
[bearbeiten] Exception-Behandlung
Die Header-Datei <exception> stellt mehrere Klassen und Funktionen zur Verfügung, die sich auf die Ausnahmebehandlung in C++-Programmen beziehen.
| Definiert in Header
<exception> | |
| Basisklasse für Ausnahmen, die von Standardbibliothekskomponenten ausgelöst werden (Klasse) | |
Erfassung und Speicherung von Ausnahmeobjekten | |
| (in C++20* entfernt)(C++17) |
prüft, ob gerade eine Ausnahmebehandlung im Gange ist (Funktion) |
| (C++11) |
Shared-Pointer-Typ zur Handhabung von Ausnahmeobjekten (Typedef) |
| (C++11) |
erstellt einen std::exception_ptr aus einem Ausnahmeobjekt (Funktionstemplate) |
| (C++11) |
erfasst die aktuelle Ausnahme in einem std::exception_ptr (Funktion) |
| (C++11) |
wirft die Ausnahme aus einem std::exception_ptr (Funktion) |
| (C++11) |
ein Mixin-Typ zur Erfassung und Speicherung aktueller Ausnahmen (Klasse) |
| (C++11) |
wirft ihr Argument mit std::nested_exception gemischt (Funktionstemplate) |
| (C++11) |
wirft die Ausnahme aus einem std::nested_exception (Funktionstemplate) |
Behandlung von Fehlern bei der Ausnahmebehandlung | |
| Definiert in Header
<exception> | |
| Funktion, die aufgerufen wird, wenn die Ausnahmebehandlung fehlschlägt (Funktion) | |
| der Typ der Funktion, die von std::terminate aufgerufen wird (Typedef) | |
| (C++11) |
holt den aktuellen terminate_handler (Funktion) |
| ändert die Funktion, die von std::terminate aufgerufen werden soll (Funktion) | |
| Ausnahme, die ausgelöst wird, wenn std::current_exception beim Kopieren des Ausnahmeobjekts fehlschlägt (Klasse) | |
Behandlung von Verstößen gegen die Ausnahmespezifikation (bis C++17) | |
| (in C++11 veraltet)(in C++17 entfernt) |
Funktion, die aufgerufen wird, wenn eine dynamische Ausnahmespezifikation verletzt wird (Funktion) |
| (in C++11 veraltet)(in C++17 entfernt) |
der Typ der Funktion, die von std::unexpected aufgerufen wird (Typedef) |
| (in C++11 veraltet)(in C++17 entfernt) |
holt den aktuellen unexpected_handler(Funktion) |
| (in C++11 veraltet)(in C++17 entfernt) |
ändert die Funktion, die von std::unexpected aufgerufen werden soll (Funktion) |
[bearbeiten] Ausnahmekategorien
Mehrere praktische Klassen sind in der Header-Datei <stdexcept> vordefiniert, um bestimmte Fehlerbedingungen zu melden. Diese Klassen können in zwei Kategorien eingeteilt werden: *Logische* Fehler und *Laufzeitfehler*. Logische Fehler sind eine Folge von fehlerhafter Logik im Programm und können vermeidbar sein. Laufzeitfehler sind auf Ereignisse zurückzuführen, die außerhalb des Programms liegen und nicht leicht vorhergesagt werden können.
| Definiert in der Header-Datei
<stdexcept> | |
| Ausnahmeklasse zur Meldung von Verstößen gegen logische Vorbedingungen oder Klasseninvarianten (Klasse) | |
| Ausnahmeklasse zur Meldung ungültiger Argumente (Klasse) | |
| Ausnahmeklasse zur Meldung von Domänenfehlern (Klasse) | |
| Ausnahmeklasse zur Meldung von Versuchen, die maximal zulässige Größe zu überschreiten (Klasse) | |
| Ausnahmeklasse zur Meldung von Argumenten außerhalb des erwarteten Bereichs (Klasse) | |
| Ausnahmeklasse zur Meldung von Bedingungen, die nur zur Laufzeit erkennbar sind (Klasse) | |
| Ausnahmeklasse zur Meldung von Bereichsfehlern bei internen Berechnungen (Klasse) | |
| Ausnahmeklasse zur Meldung von arithmetischen Überläufen (Klasse) | |
| Ausnahmeklasse zur Meldung von arithmetischen Unterläufen (Klasse) | |
| (TM TS) |
Ausnahmeklasse zur Abbrechung atomarer Transaktionen (Klassentemplate) |
[bearbeiten] Fehlernummern
| Definiert in der Header-Datei
<cerrno> | |
| Makro, das zur POSIX-kompatiblen, Thread-lokalen Fehlernummern-Variable expandiert (Makrovariable) | |
| Makros für Standard-POSIX-kompatible Fehlerbedingungen (Makrokonstante) | |
[bearbeiten] Systemfehler (seit C++11)
Die Header-Datei <system_error> definiert Typen und Funktionen, die zur Meldung von Fehlerbedingungen verwendet werden, die vom Betriebssystem, vom Stream-I/O, von std::future oder anderen Low-Level-APIs herrühren.
| Definiert in der Header-Datei
<system_error> | |
| (C++11) |
Basisklasse für Fehlerkategorien (Klasse) |
| (C++11) |
identifiziert die generische Fehlerkategorie (Funktion) |
| (C++11) |
identifiziert die Betriebssystem-Fehlerkategorie (Funktion) |
| (C++11) |
enthält einen portablen Fehlercode (Klasse) |
| (C++11) |
die std::error_condition-Aufzählung, die alle Standard-Makrokonstanten aus <cerrno> listet (Klasse) |
| (C++11) |
enthält einen plattformabhängigen Fehlercode (Klasse) |
| (C++11) |
Ausnahmeklasse zur Meldung von Bedingungen, die einen error_code haben (Klasse) |
[bearbeiten] Assertions
Assertions helfen bei der Implementierung der Überprüfung von Vorbedingungen in Programmen.
| Definiert in der Header-Datei
<cassert> | |
| bricht das Programm ab, wenn die vom Benutzer angegebene Bedingung nicht true ist. Kann für Release-Builds deaktiviert werden. (Funktionsmakro) | |
[bearbeiten] Stacktrace (seit C++23)
| Definiert in der Header-Datei
<stacktrace> | |
| (C++23) |
Repräsentation einer Auswertung in einem Stacktrace (class) |
| (C++23) |
ungefähre Darstellung einer Aufrufsequenz, bestehend aus Stacktrace-Einträgen (Klassentemplate) |
[bearbeiten] Debugging-Unterstützung (seit C++26)
| Definiert in der Header-Datei
<debugging> | |
| (C++26) |
pausiert das laufende Programm, wenn es aufgerufen wird (Funktion) |
| (C++26) |
ruft std::breakpoint auf, wenn std::is_debugger_present true zurückgibt (Funktion) |
| (C++26) |
prüft, ob ein Programm unter der Kontrolle eines Debuggers ausgeführt wird (Funktion) |
[bearbeiten] Siehe auch
static_assert Deklaration (C++11) |
führt Assertionsprüfungen zur Kompilierzeit durch |
| C-Dokumentation für Fehlerbehandlung
| |