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) |
Contents |
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
Tand 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
| (since C++11) |
| (since C++11) |
| (since C++17) |
| (TM TS) |
| (since C++20) |
| (since C++17) |
| (since C++23) |
| (since C++11) |
| (since C++11) |
| (until C++11) |
| (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 |