Namensräume
Varianten
Aktionen

Diagnostik-Bibliothek

Von cppreference.com
< cpp
 
 
 

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) [bearbeiten]
Erfassung und Speicherung von Ausnahmeobjekten
(in C++20* entfernt)(C++17)
prüft, ob gerade eine Ausnahmebehandlung im Gange ist
(Funktion) [bearbeiten]
Shared-Pointer-Typ zur Handhabung von Ausnahmeobjekten
(Typedef) [bearbeiten]
erstellt einen std::exception_ptr aus einem Ausnahmeobjekt
(Funktionstemplate) [bearbeiten]
erfasst die aktuelle Ausnahme in einem std::exception_ptr
(Funktion) [bearbeiten]
wirft die Ausnahme aus einem std::exception_ptr
(Funktion) [bearbeiten]
ein Mixin-Typ zur Erfassung und Speicherung aktueller Ausnahmen
(Klasse) [bearbeiten]
wirft ihr Argument mit std::nested_exception gemischt
(Funktionstemplate) [bearbeiten]
wirft die Ausnahme aus einem std::nested_exception
(Funktionstemplate) [bearbeiten]
Behandlung von Fehlern bei der Ausnahmebehandlung
Definiert in Header <exception>
Funktion, die aufgerufen wird, wenn die Ausnahmebehandlung fehlschlägt
(Funktion) [bearbeiten]
der Typ der Funktion, die von std::terminate aufgerufen wird
(Typedef) [bearbeiten]
holt den aktuellen terminate_handler
(Funktion) [bearbeiten]
ändert die Funktion, die von std::terminate aufgerufen werden soll
(Funktion) [bearbeiten]
Ausnahme, die ausgelöst wird, wenn std::current_exception beim Kopieren des Ausnahmeobjekts fehlschlägt
(Klasse) [bearbeiten]
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) [bearbeiten]
(in C++11 veraltet)(in C++17 entfernt)
der Typ der Funktion, die von std::unexpected aufgerufen wird
(Typedef) [bearbeiten]
(in C++11 veraltet)(in C++17 entfernt)
holt den aktuellen unexpected_handler
(Funktion) [bearbeiten]
(in C++11 veraltet)(in C++17 entfernt)
ändert die Funktion, die von std::unexpected aufgerufen werden soll
(Funktion) [bearbeiten]

[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) [bearbeiten]
Ausnahmeklasse zur Meldung ungültiger Argumente
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von Domänenfehlern
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von Versuchen, die maximal zulässige Größe zu überschreiten
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von Argumenten außerhalb des erwarteten Bereichs
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von Bedingungen, die nur zur Laufzeit erkennbar sind
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von Bereichsfehlern bei internen Berechnungen
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von arithmetischen Überläufen
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von arithmetischen Unterläufen
(Klasse) [bearbeiten]
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)[bearbeiten]
Makros für Standard-POSIX-kompatible Fehlerbedingungen
(Makrokonstante) [bearbeiten]

[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>
Basisklasse für Fehlerkategorien
(Klasse) [bearbeiten]
identifiziert die generische Fehlerkategorie
(Funktion) [bearbeiten]
identifiziert die Betriebssystem-Fehlerkategorie
(Funktion) [bearbeiten]
enthält einen portablen Fehlercode
(Klasse) [bearbeiten]
(C++11)
die std::error_condition-Aufzählung, die alle Standard-Makrokonstanten aus <cerrno> listet
(Klasse) [bearbeiten]
enthält einen plattformabhängigen Fehlercode
(Klasse) [bearbeiten]
Ausnahmeklasse zur Meldung von Bedingungen, die einen error_code haben
(Klasse) [bearbeiten]

[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]

[bearbeiten] Stacktrace (seit C++23)

Definiert in der Header-Datei <stacktrace>
Repräsentation einer Auswertung in einem Stacktrace
(class) [bearbeiten]
ungefähre Darstellung einer Aufrufsequenz, bestehend aus Stacktrace-Einträgen
(Klassentemplate) [bearbeiten]

[bearbeiten] Debugging-Unterstützung (seit C++26)

Definiert in der Header-Datei <debugging>
pausiert das laufende Programm, wenn es aufgerufen wird
(Funktion) [bearbeiten]
ruft std::breakpoint auf, wenn std::is_debugger_present true zurückgibt
(Funktion) [bearbeiten]
prüft, ob ein Programm unter der Kontrolle eines Debuggers ausgeführt wird
(Funktion) [bearbeiten]

[bearbeiten] Siehe auch

static_assert Deklaration (C++11) führt Assertionsprüfungen zur Kompilierzeit durch[bearbeiten]
C-Dokumentation für Fehlerbehandlung