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.
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>voidmy_unexp(){throw;}voidtest()throw(std::bad_exception){throwstd::runtime_error("test");}intmain(){std::set_unexpected(my_unexp);try{test();}catch(conststd::bad_exception&e){std::cerr<<"Se ha atrapado "<<e.what()<<'\n';}}