Namespaces
Variants

Diagnostics library

From cppreference.net

Inhaltsverzeichnis

Exception Handling

Der Header <exception> stellt mehrere Klassen und Funktionen zur Verfügung, die mit der Ausnahmebehandlung in C++-Programmen zusammenhängen.

Definiert im Header <exception>
Basisklasse für Ausnahmen, die von den Komponenten der Standardbibliothek geworfen werden
(Klasse)
Erfassung und Speicherung von Ausnahmeobjekten
( removed in C++20* ) (C++17)
prüft, ob aktuell eine Ausnahmebehandlung stattfindet
(Funktion)
Gemeinsamer Zeigertyp zur Behandlung von Ausnahmeobjekten
(typedef)
erstellt einen std::exception_ptr aus einem Exception-Objekt
(Funktions-Template)
erfasst die aktuelle Ausnahme in einem std::exception_ptr
(Funktion)
wirft die Ausnahme von einem std::exception_ptr
(Funktion)
Ein Mixin-Typ zum Erfassen und Speichern aktueller Exceptions
(Klasse)
wirft sein Argument mit std::nested_exception vermischt
(Funktionsschablone)
wirft die Exception aus einer std::nested_exception
(Funktions-Template)
Behandlung von Fehlern in der Ausnahmebehandlung
Definiert im Header <exception>
Funktion, die aufgerufen wird, wenn die Ausnahmebehandlung fehlschlägt
(Funktion)
der Typ der Funktion, die von std::terminate aufgerufen wird
(typedef)
ermittelt den aktuellen terminate_handler
(Funktion)
ändert die Funktion, die von std::terminate aufgerufen wird
(Funktion)
Ausnahme, die ausgelöst wird, wenn std::current_exception das Exception-Objekt nicht kopieren kann
(Klasse)
Behandlung von Exception-Spezifikationsverletzungen (bis C++17)
(deprecated in C++11) (removed in C++17)
Funktion, die aufgerufen wird, wenn eine dynamische Exception-Spezifikation verletzt wird
(Funktion)
(in C++11 veraltet) (in C++17 entfernt)
der Typ der Funktion, die von std::unexpected aufgerufen wird
(Typdefinition)
(veraltet in C++11) (entfernt in C++17)
ermittelt den aktuellen unexpected_handler
(Funktion)
(in C++11 veraltet) (in C++17 entfernt)
ändert die Funktion, die von std::unexpected aufgerufen wird
(Funktion)

Ausnahmekategorien

Im Header <stdexcept> sind mehrere vordefinierte Hilfsklassen vorhanden, um bestimmte Fehlerzustände zu melden. Diese Klassen können in zwei Kategorien unterteilt werden: logic errors und runtime errors. Logic errors sind die Folge fehlerhafter Logik innerhalb des Programms und könnten vermeidbar sein. Runtime errors sind auf Ereignisse außerhalb des Programmbereichs zurückzuführen und lassen sich nicht leicht vorhersagen.

Definiert im Header <stdexcept>
Exception-Klasse zur Anzeige von Verletzungen logischer Vorbedingungen oder Klasseninvarianten
(Klasse)
Exception-Klasse zum Melden ungültiger Argumente
(Klasse)
Exception-Klasse zum Melden von Definitionsbereichsfehlern
(Klasse)
Exception-Klasse zum Melden von Versuchen, die maximal erlaubte Größe zu überschreiten
(Klasse)
Exception-Klasse zum Melden von Argumenten außerhalb des erwarteten Bereichs
(Klasse)
Exception-Klasse zur Anzeige von Bedingungen, die nur zur Laufzeit erkennbar sind
(Klasse)
Exception-Klasse zum Melden von Bereichsfehlern in internen Berechnungen
(Klasse)
Exception-Klasse zum Melden von arithmetischen Überläufen
(Klasse)
Exception-Klasse zum Melden von arithmetischen Unterläufen
(Klasse)
Exception-Klasse zum Abbrechen atomarer Transaktionen
(Klassentemplate)

Fehlernummern

Definiert im Header <cerrno>
Makro, das zu einer POSIX-kompatiblen thread-lokalen Fehlernummer-Variable expandiert
(Makro-Variable)
Makros für standard POSIX-kompatible Fehlerbedingungen
(Makro-Konstante)

Systemfehler (seit C++11)

Der Header <system_error> definiert Typen und Funktionen, die zur Meldung von Fehlerzuständen verwendet werden, die vom Betriebssystem, Streams-I/O, std::future oder anderen Low-Level-APIs stammen.

Definiert im Header <system_error>
Basisklasse für Fehlerkategorien
(Klasse)
identifiziert die generische Fehlerkategorie
(Funktion)
identifiziert die Betriebssystem-Fehlerkategorie
(Funktion)
hält einen portablen Fehlercode
(Klasse)
(C++11)
die std::error_condition Aufzählung listet alle standard <cerrno> Makrokonstanten auf
(Klasse)
(C++11)
hält einen plattformabhängigen Fehlercode
(Klasse)
Ausnahmeklasse zur Meldung von Zuständen mit einem error_code
(Klasse)

Assertions

Assertionen helfen bei der Implementierung von Präcondition-Prüfungen in Programmen.

Definiert im Header <cassert>
bricht das Programm ab, wenn die benutzerdefinierte Bedingung nicht true ist. Kann für Release-Builds deaktiviert werden.
(Funktionsmakro)

Stacktrace (seit C++23)

Definiert im Header <stacktrace>
Darstellung einer Auswertung in einem Stacktrace
(Klasse)
Annähernde Darstellung einer Aufrufsequenz bestehend aus Stacktrace-Einträgen
(Klassentemplate)

Debugging-Unterstützung (since C++26)

Definiert im Header <debugging>
(C++26)
hält das laufende Programm beim Aufruf an
(Funktion)
ruft std::breakpoint auf, falls std::is_debugger_present true zurückgibt
(Funktion)
prüft, ob ein Programm unter der Kontrolle eines Debuggers läuft
(Funktion)

Siehe auch

static_assert Deklaration (C++11) führt Überprüfung zur Compile-Zeit durch
C-Dokumentation für Fehlerbehandlung