EVAP2


<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