18 Language support library [language.support]

18.8 Exception handling [support.exception]

18.8.2 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;
    virtual const char* what() const noexcept;
  };
}

The class bad_exception defines the type of objects thrown as described in ([except.unexpected]).

bad_exception() noexcept;

Effects: Constructs an object of class bad_exception.

Remarks: The result of calling what() on the newly constructed object is implementation-defined.

bad_exception(const bad_exception&) noexcept; bad_exception& operator=(const bad_exception&) noexcept;

Effects: Copies an object of class bad_exception.

virtual const char* what() const noexcept;

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]).