std::bad_exception - cppreference.com
De cppreference.com
| Definido en el archivo de encabezado |
||
|
|
||
std::bad_exception es el tipo de la excepción lanzada en tiempo de ejecución por C++ en las siguientes situaciones:
1) Si std::exception_ptr almacena una copia de la excepción atrapada y si el constructor de copia del objeto de excepción atrapado por std::current_exception lanza una excepción, la excepción capturada es una instancia de std::bad_exception.
|
2) Si se viola una especificación de excepción dinámica y std::unexpected lanza o vuelve a lanzar una excepción que todavía viola la especificación de excepción, pero la especificación de excepción permite |
(hasta C++17) |
Inheritance diagram
Funciones miembro
Construye el objeto bad_exception. (función miembro pública) | |
| Copia el objeto. (función miembro pública) | |
| Devuelve una cadena aclaratoria. (función miembro virtual pública) |
Heredado de std::exception
Funciones miembro
| Destruye el objeto excepción. (función miembro virtual pública de std::exception) [editar]
| |
| Devuelve una cadena aclaratoria. (función miembro virtual pública de std::exception) [editar]
|
Ejemplo
#include <iostream> #include <exception> #include <stdexcept> void my_unexp() { throw; } void test() throw(std::bad_exception) { throw std::runtime_error("test"); } int main() { std::set_unexpected(my_unexp); try { test(); } catch(const std::bad_exception& e) { std::cerr << "Se ha atrapado " << e.what() << '\n'; } }
Salida:
Se ha atrapado std::bad_exception