<EXCEPTION>
Este encabezado define la clase base para todas las excepciones producidas por los elementos de la biblioteca estándar: "excepction", junto con varios tipos y utilidades para ayudar a excepciones de manipulación de:
TIPOS:
-excepción: Clase de excepción estándar (clase)
-bad_exception: Excepción lanzada en handler inesperada (clase)
-nested_exception : Clase de excepción anidada (clase)
-exception_ptr : Excepción de puntero (tipo)
-terminate_handler: Tipo de terminar función de controlador (tipo)
-unexpected_handler: Tipo de función del controlador inesperado (tipo)
FUNCIONES:
-terminate: Función de manejo de terminación de "excepction" (función)
-get_terminate : Obtenga terminar función de controlador (función)
-set_terminate: Establecer terminar función de controlador (función)
-inesperado: Función de tratamiento de excepciones inesperadas (función)
-get_unexpected : Obtenga función de controlador inesperada (función)
-set_unexpected: Establezca función de controlador inesperada (función)
-uncaught_exception. Volver estados de excepción (función)
-current_exception : Obtenga puntero inteligente para excepción actual (función)
-rethrow_exception : Excepction Rethrow (función)
-make_exception_ptr : Haga exception_ptr (plantilla de función)
-throw_with_nested : Tire con anidada (funcionamiento)
-rethrow_if_nested: Rethrow si anidada (funcionamiento)
* std: :terminate
Obtiene el controlador de finalizar la función. El manejador de terminar la función se llama automáticamente cuando no hay
captura
controlador se puede encontrar una excepción lanzada, o por alguna otra circunstancia excepcional que hace imposible continuar con el proceso de gestión de excepciones. Si tal función ha sido establecido por un llamada previa a set_terminate, La función puede devolver un puntero nulo (aunque algunas implementaciones también pueden devolver un puntero de función válida que llama abortar).
ejemplo:
// terminate example
#include <iostream> // std::cout, std::cerr
#include <exception> // std::exception, std::terminate
int main (void) {
char* p;
std::cout << "El intento de asignar 1 GiB...";
try {
p = new char [1024*1024*1024];
}
catch (std::exception& e) {
std::cerr << "ERROR: no puede asiganr almacenamiento \n";
std::terminate();
}
std::cout << "Ok\n";
delete[] p;
return 0;
}
Posible salida:
El intento de asignar 1 GiB... Ok
No hay comentarios:
Publicar un comentario