21 Language support library [language.support]

21.8 Exception handling [support.exception]

21.8.3 Class bad_­exception [bad.exception]

namespace std {
  class bad_exception : public exception {
  public:
    bad_exception() noexcept;
    bad_exception(const bad_exception&) noexcept;
    bad_exception& operator=(const bad_exception&) noexcept;
    const char* what() const noexcept override;
  };
}
The class bad_­exception defines the type of the object referenced by the exception_­ptr returned from a call to current_­exception ([propagation]) when the currently active exception object fails to copy.
bad_exception() noexcept;
Effects: Constructs an object of class bad_­exception.
bad_exception(const bad_exception&) noexcept; bad_exception& operator=(const bad_exception&) noexcept;
Effects: Copies an object of class bad_­exception.
const char* what() const noexcept override;
Returns: An implementation-defined ntbs.
Remarks: The message may be a null-terminated multibyte string ([multibyte.strings]), suitable for conversion and display as a wstring ([string.classes], [locale.codecvt]).