std:: unexpected_handler
|
Definido en el encabezado
<exception>
|
||
|
typedef
void
(
*
unexpected_handler
)
(
)
;
|
(obsoleto en C++11)
(eliminado en C++17) |
|
std::unexpected_handler
es el tipo de puntero a función (puntero a función que no toma argumentos y retorna void), que es instalado y consultado por las funciones
std::set_unexpected
y
std::get_unexpected
y llamado por
std::unexpected
.
La implementación de C++ proporciona una función predeterminada
std::unexpected_handler
, que llama a
std::terminate()
. Si se instala el valor de puntero nulo (mediante
std::set_unexpected
), la implementación puede restaurar el manejador predeterminado en su lugar.
Un
std::unexpected_handler
definido por el usuario debe terminar el programa o lanzar una excepción. Si lanza una excepción, puede encontrarse una de las siguientes tres situaciones:
1) la excepción lanzada por
std::unexpected_handler
satisface la especificación de excepción dinámica que fue violada anteriormente. Se permite que la nueva excepción escape de la función y el desenrollado de pila continúa.
2) la excepción lanzada por
std::unexpected_handler
aún viola la especificación de excepciones:
2a) sin embargo, la especificación de excepción permite std::bad_exception : el objeto de excepción lanzado es destruido, y std::bad_exception es construido por el runtime de C++ y lanzado en su lugar.
2b) la especificación de excepción no permite std::bad_exception : std::terminate() es llamado.
Véase también
|
(deprecated in C++11)
(removed in C++17)
|
función llamada cuando se viola la especificación de excepción dinámica
(función) |
|
(deprecated in C++11)
(removed in C++17)
|
cambia la función a ser llamada por
std::unexpected
(función) |
|
(deprecated in C++11)
(removed in C++17)
|
obtiene el actual
unexpected_handler
(función) |