Namensräume
Varianten
Aktionen

Standardbibliotheks-Header <exception>

Von cppreference.com
< cpp‎ | header
 
 
Header der Standardbibliothek
 

Dieser Header ist Teil der Fehlerbehandlungs-Bibliothek.

Inhalt

Typen

Basisklasse für Ausnahmen, die von Standardbibliothekskomponenten ausgelöst werden
(Klasse) [bearbeiten]
ein Mixin-Typ zur Erfassung und Speicherung aktueller Ausnahmen
(Klasse) [bearbeiten]
exception ausgelöst, wenn std::current_exception das Kopieren des Ausnahmeobjekts nicht erfolgreich durchführen kann
(Klasse) [edit]
(in C++11 veraltet)(in C++17 entfernt)
der Typ der Funktion, die von std::unexpected aufgerufen wird
(Typedef) [bearbeiten]
der Typ der Funktion, die von std::terminate aufgerufen wird
(Typedef) [bearbeiten]
Shared-Pointer-Typ zur Handhabung von Ausnahmeobjekten
(Typedef) [bearbeiten]

Funktionen

(in C++11 veraltet)(in C++17 entfernt)
Funktion, die aufgerufen wird, wenn eine dynamische Ausnahmespezifikation verletzt wird
(Funktion) [bearbeiten]
(in C++20* entfernt)(C++17)
prüft, ob gerade eine Ausnahmebehandlung im Gange ist
(Funktion) [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]
wirft ihr Argument mit std::nested_exception gemischt
(Funktionstemplate) [bearbeiten]
wirft die Ausnahme aus einem std::nested_exception
(Funktionstemplate) [bearbeiten]
Funktion, die aufgerufen wird, wenn die Ausnahmebehandlung fehlschlägt
(Funktion) [bearbeiten]
holt den aktuellen terminate_handler
(Funktion) [bearbeiten]
ändert die Funktion, die von std::terminate aufgerufen werden soll
(Funktion) [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]

[edit] Synopsis

namespace std {
  class exception;
  class bad_exception;
  class nested_exception;
 
  using terminate_handler = void (*)();
  terminate_handler get_terminate() noexcept;
  terminate_handler set_terminate(terminate_handler f) noexcept;
  [[noreturn]] void terminate() noexcept;
 
  int uncaught_exceptions() noexcept;
 
  using exception_ptr = /* unspecified */;
 
  exception_ptr current_exception() noexcept;
  [[noreturn]] void rethrow_exception(exception_ptr p);
  template<class E> exception_ptr make_exception_ptr(E e) noexcept;
 
  template<class T> [[noreturn]] void throw_with_nested(T&& t);
  template<class E> void rethrow_if_nested(const E& e);
}

[edit] Klasse std::exception

namespace std {
  class exception {
  public:
    exception() noexcept;
    exception(const exception&) noexcept;
    exception& operator=(const exception&) noexcept;
    virtual ~exception();
    virtual const char* what() const noexcept;
  };
}

[edit] Klasse std::bad_exception

namespace std {
  class bad_exception : public exception {
  public:
    // see [exception] for the specification of the special member functions
    const char* what() const noexcept override;
  };
}

[edit] Klasse std::nested_exception

namespace std {
  class nested_exception {
  public:
    nested_exception() noexcept;
    nested_exception(const nested_exception&) noexcept = default;
    nested_exception& operator=(const nested_exception&) noexcept = default;
    virtual ~nested_exception() = default;
 
    // access functions
    [[noreturn]] void rethrow_nested() const;
    exception_ptr nested_ptr() const noexcept;
  };
 
  template<class T> [[noreturn]] void throw_with_nested(T&& t);
  template<class E> void rethrow_if_nested(const E& e);
}

[edit] Siehe auch