Namensräume
Varianten
Aktionen

std::exception

Von cppreference.com
< cpp‎ | error
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
 
Definiert in Header <exception>
class exception;

Bietet eine konsistente Schnittstelle zur Fehlerbehandlung durch den throw-Ausdruck.

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

Alle Member-Funktionen von std::exception sind constexpr.

(seit C++26)

Inhalt

[bearbeiten] Member-Funktionen

konstruiert das Ausnahmeobjekt
(öffentliche Memberfunktion)
[virtuell]
zerstört das Ausnahmeobjekt
(virtuelle public Member-Funktion) [bearbeiten]
kopiert das Ausnahmeobjekt
(public Member-Funktion) [bearbeiten]
[virtuell]
gibt einen erklärenden String zurück
(virtuelle public Member-Funktion) [bearbeiten]

[bearbeiten] Standard-Ausnahmeanforderungen

Jede Standardbibliotheksklasse T, die von std::exception abgeleitet ist, hat die folgenden öffentlich zugänglichen Member-Funktionen, von denen jede nicht mit einer Ausnahme beendet wird(bis C++11)eine nicht-werfende Ausnahme-Spezifikation hat(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 Member-Funktion what() jedes solchen T erfüllt die für std::exception::what() spezifizierten Einschränkungen.

[bearbeiten] Standard-Ausnahmen

[bearbeiten] Hinweise

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

[bearbeiten] Defect Reports

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

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