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.
| constructs the exception object (public member function) |
|
|
[virtual] | destroys the exception object (virtual public member function) |
| copies exception object (public member function) |
|
|
[virtual] | returns an explanatory string (virtual public member function) |
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++20)having a non-throwing exception specification (since C++20):
| (since C++20) |
The copy constructor and the copy assignment operator meet the following postcondition:
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 | (since C++20) |
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) 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 classes derived from std::exception | added |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/error/exception