table of contents
        
      
      
    | std::exception(3) | C++ Standard Libary | 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
| 2024.06.10 | http://cppreference.com |