std:: exception
|
|
|
|
Member functions | ||||
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
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
-
- invalid_argument
- domain_error
- length_error
- out_of_range
- future_error (since C++11)
-
- 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_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)
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 |