std::bad_exception
De cppreference.com
Definido en el archivo de encabezado <exception> | ||
class bad_exception; | ||
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 std::bad_exception , entonces se lanza std::bad_exception . | (hasta C++17) |
Contenido |
[editar]Funciones miembro
Construye el objeto bad_exception . (función miembro pública) | |
Copia el objeto. (función miembro pública) | |
[virtual] | Devuelve una cadena aclaratoria. (función miembro virtual pública) |
Heredado de std::exception
Funciones miembro
[virtual] | Destruye el objeto excepción. (función miembro virtual pública de std::exception ) |
[virtual] | Devuelve una cadena aclaratoria. (función miembro virtual pública de std::exception ) |
[editar]Ejemplo
Ejecuta este código
#include <iostream>#include <exception>#include <stdexcept> void my_unexp(){throw;} void test()throw(std::bad_exception){throwstd::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