std::exception
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.
| All member functions of | (since C++26) |
Member functions
| 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) |
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
lhsandrhsboth have dynamic typeTandlhsis a copy ofrhs, thenstd::strcmp(lhs.what(), rhs.what())is equal to0.
The what() member function of each such T satisfies the constraints specified for std::exception::what().
Standard exceptions
logic_errorinvalid_argumentdomain_errorlength_errorout_of_range-
future_error(since C++11) runtime_errorrange_erroroverflow_errorunderflow_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_typeidbad_cast-
bad_any_cast(since C++17) -
bad_optional_access(since C++17) -
bad_variant_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) -
meta::exception(since C++26)
Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_constexpr_exceptions | 202411L | (C++26) | constexpr for exception types |
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 classes derived from std::exception | added |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/error/exception