Namespaces
Variants

std:: exception

From cppreference.net
Utilities library
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 std::exception son constexpr .

(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) :

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 T y 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