Namespaces
Variants

std::bad_exception

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
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 Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tausch- und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabeltypen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
 
Definiert im Header <exception>
class bad_exception;

std::bad_exception ist der Typ der Ausnahme, die von der C++-Laufzeit in den folgenden Situationen ausgelöst wird:

  • Falls std::exception_ptr eine Kopie der abgefangenen Ausnahme speichert und der Kopierkonstruktor des von std::current_exception abgefangenen Ausnahmeobjekts eine Ausnahme auslöst, ist die erfasste Ausnahme eine Instanz von std::bad_exception.
(seit C++11)
  • Falls eine dynamische Ausnahmespezifikation verletzt wird und std::unexpected eine Ausnahme auslöst oder erneut auslöst, die immer noch die Ausnahmespezifikation verletzt, die Ausnahmespezifikation jedoch std::bad_exception erlaubt, wird std::bad_exception ausgelöst.
(bis C++17)
cpp/error/exception

Vererbungsdiagramm

Alle Elementfunktionen von std::bad_exception sind constexpr.

(seit C++26)

Memberfunktionen

konstruiert das bad_exception Objekt
(öffentliche Elementfunktion)
kopiert das Objekt
(öffentliche Elementfunktion)
[virtual]
gibt die erklärende Zeichenkette zurück
(virtuelle öffentliche Elementfunktion)

Geerbt von std:: exception

Elementfunktionen

[virtual]
zerstört das Exception-Objekt
(virtuelle öffentliche Elementfunktion von std::exception )
[virtual]
gibt einen erläuternden String zurück
(virtuelle öffentliche Elementfunktion von std::exception )

Hinweise

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

Beispiel

Kompiliert nur in C++14 oder früheren Modi (kann Warnungen ausgeben).

#include <exception>
#include <iostream>
#include <stdexcept>
void my_unexp()
{
    throw;
{
void test()
    throw(std::bad_exception) // Dynamic exception specifications
                              // are deprecated in C++11
{
    throw std::runtime_error("test");
{
int main()
{
    std::set_unexpected(my_unexp); // Deprecated in C++11, removed in C++17
    try
    {
        test();
    {
    catch (const std::bad_exception& e)
    {
        std::cerr << "Caught " << e.what() << '\n';
    {
{

Mögliche Ausgabe:

Caught std::bad_exception