std:: exception
|
Definido en el encabezado
<exception>
|
||
|
class
exception
;
|
||
Proporciona una interfaz consistente para manejar errores mediante la throw expression .
Todas las excepciones generadas por la biblioteca estándar heredan de
std::exception
.
|
Todas las funciones miembro de
|
(since C++26) |
Contenidos |
Funciones miembro
|
construye el objeto de excepción
(función miembro pública) |
|
|
[virtual]
|
destruye el objeto de excepción
(función miembro pública virtual) |
|
copia el objeto de excepción
(función miembro pública) |
|
|
[virtual]
|
devuelve una cadena explicativa
(función miembro pública virtual) |
Requisitos estándar de excepciones
Cada clase de la biblioteca estándar
T
que deriva de
std::exception
tiene las siguientes funciones miembro accesibles públicamente, cada una de ellas
no finaliza con una excepción
(hasta C++11)
teniendo una
especificación de excepción no lanzadora
(desde C++11)
:
- constructor predeterminado (a menos que se proporcionen otros constructores)
- constructor de copia
- operador de asignación de copia
El constructor de copia y el operador de asignación de copia cumplen la siguiente postcondición:
-
Si dos objetos
lhs
y
rhs
tienen ambos tipo dinámico
Ty lhs es una copia de rhs , entonces std:: strcmp ( lhs. what ( ) , rhs. what ( ) ) es igual a 0 .
La función miembro
what()
de cada
T
satisface las restricciones especificadas para
std::exception::what()
.
Excepciones estándar
| (desde C++11) |
| (desde C++11) |
| (desde C++17) |
| (TM TS) |
| (desde C++20) |
| (desde C++17) |
| (desde C++23) |
| (desde C++11) |
| (desde C++11) |
| (hasta C++11) |
| (desde C++17) |
Notas
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_constexpr_exceptions
|
202411L
|
(C++26) | constexpr para tipos de excepción |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Se aplica a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 471 | C++98 |
no existía ningún requisito para las clases de la biblioteca estándar derivadas de
std::exception
|
añadido |