std::exception(3)

NAME
std::exception - std::exception

Synopsis
   Defined in header <exception>
   class exception;
   Provides consistent interface to handle errors through the throw expression.
   All exceptions generated by the standard library inherit from std::exception.

Member functions
   constructor constructs the exception object
                 (public member function)
   destructor destroys the exception object
   [virtual] (virtual public member function)
   operator= copies exception object
                 (public member function)
   what returns an explanatory string
   [virtual] (virtual public member function)
   Standard exception requirements
   Each standard library class T that derives from std::exception has the following
   publicly accessible member functions, each of them
   do not exit with an exception
   (until C++11)
   having a non-throwing exception specification
   (since C++11):
     * default constructor (unless other constructors are provided)
     * copy constructor
     * copy assignment operator
   The copy constructor and the copy assignment operator meet the following
   postcondition:
     * If two objects lhs and rhs both have dynamic type T and lhs is a copy of rhs,
       then std::strcmp(lhs.what(), rhs.what()) is equal to 0.
   The what() member function of each such T satisfies the constraints specified for
   std::exception::what().
   Standard exceptions
     * logic_error
     * invalid_argument
     * domain_error
     * length_error
     * out_of_range
     * future_error (since C++11)
     * runtime_error
     * range_error
     * overflow_error
     * underflow_error
     * regex_error (since C++11)
     * system_error (since C++11)
     * ios_base::failure (since C++11)
     * filesystem::filesystem_error (since C++17)
     * tx_exception (TM TS)
     * nonexistent_local_time (since C++20)
     * ambiguous_local_time (since C++20)
     * format_error (since C++20)
     * bad_typeid
     * bad_cast
     * bad_any_cast (since C++17)
     * bad_optional_access (since C++17)
     * bad_expected_access (since C++23)
     * bad_weak_ptr (since C++11)
     * bad_function_call (since C++11)
     * bad_alloc
     * bad_array_new_length (since C++11)
     * bad_exception
     * ios_base::failure (until C++11)
     * bad_variant_access (since C++17)
   Defect reports
   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.
     DR Applied to Behavior as published Correct behavior
   LWG 471 C++98 there was no requirement on standard library added
                      classes derived from std::exception