Namespaces
Variants

std:: exception

From cppreference.net
Utilities library
Definiert im Header <exception>
class exception ;

Bietet eine konsistente Schnittstelle zur Fehlerbehandlung durch den throw expression .

Alle vom Standardbibliothek generierten Ausnahmen erben von std::exception .

Alle Memberfunktionen von std::exception sind constexpr .

(seit C++26)

Inhaltsverzeichnis

Memberfunktionen

Konstruiert das Exception-Objekt
(öffentliche Elementfunktion)
[virtual]
Zerstört das Exception-Objekt
(virtuelle öffentliche Elementfunktion)
Kopiert Exception-Objekt
(öffentliche Elementfunktion)
[virtual]
Gibt einen erläuternden String zurück
(virtuelle öffentliche Elementfunktion)

Standardanforderungen für Ausnahmen

Jede Standardbibliotheksklasse T , die von std::exception abgeleitet ist, verfügt über die folgenden öffentlich zugänglichen Memberfunktionen, die jeweils nicht mit einer Exception beenden (bis C++11) eine nicht-werfende Exception-Spezifikation besitzen (seit C++11) :

Der Kopierkonstruktor und der Kopierzuweisungsoperator erfüllen die folgende Nachbedingung:

  • Wenn zwei Objekte lhs und rhs beide den dynamischen Typ T haben und lhs eine Kopie von rhs ist, dann ist std:: strcmp ( lhs. what ( ) , rhs. what ( ) ) gleich 0 .

Die what() -Memberfunktion jedes solchen T erfüllt die für std::exception::what() spezifizierten Anforderungen.

Standardausnahmen

(seit C++11)
(seit C++11)
(seit C++17)
(TM TS)
(seit C++20)
(seit C++17)
(seit C++23)
(seit C++11)
(seit C++11)
(bis C++11)
(seit C++17)

Hinweise

Feature-Test Makro Wert Std Feature
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr für Ausnahmetypen

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 471 C++98 Es gab keine Anforderung an Standardbibliotheksklassen, die von std::exception abgeleitet sind hinzugefügt