Namespaces
Variants

Standard library header <exception>

From cppreference.net
Standard library headers

Este encabezado es parte de la biblioteca de manejo de errores .

Contenidos

Tipos

clase base para las excepciones lanzadas por los componentes de la biblioteca estándar
(clase)
un tipo mixin para capturar y almacenar excepciones actuales
(clase)
excepción lanzada cuando std::current_exception falla al copiar el objeto de excepción
(clase)
(obsoleto en C++11) (eliminado en C++17)
el tipo de la función llamada por std::unexpected
(typedef)
el tipo de la función llamada por std::terminate
(typedef)
tipo de puntero compartido para manejar objetos de excepción
(typedef)

Funciones

(deprecated in C++11) (removed in C++17)
función llamada cuando se viola la especificación de excepción dinámica
(función)
( removed in C++20* ) (C++17)
verifica si el manejo de excepciones está actualmente en progreso
(función)
crea un std::exception_ptr a partir de un objeto de excepción
(plantilla de función)
captura la excepción actual en un std::exception_ptr
(función)
lanza la excepción desde un std::exception_ptr
(función)
lanza su argumento con std::nested_exception integrado
(plantilla de función)
lanza la excepción desde un std::nested_exception
(plantilla de función)
función llamada cuando el manejo de excepciones falla
(función)
obtiene el terminate_handler actual
(función)
cambia la función a ser llamada por std::terminate
(función)
(obsoleto en C++11) (eliminado en C++17)
obtiene el actual unexpected_handler
(función)
(obsoleto en C++11) (eliminado en C++17)
cambia la función a ser llamada por std::unexpected
(función)

Sinopsis

// todos los entornos independientes
namespace std {
  class exception;
  class bad_exception;
  class nested_exception;
  using terminate_handler = void (*)();
  terminate_handler get_terminate() noexcept;
  terminate_handler set_terminate(terminate_handler f) noexcept;
  [[noreturn]] void terminate() noexcept;
  constexpr int uncaught_exceptions() noexcept;
  using exception_ptr = /* no especificado */;
  constexpr exception_ptr current_exception() noexcept;
  [[noreturn]] constexpr void rethrow_exception(exception_ptr p);
  template<class E> constexpr exception_ptr make_exception_ptr(E e) noexcept;
  template<class T> [[noreturn]] constexpr void throw_with_nested(T&& t);
  template<class E> constexpr void rethrow_if_nested(const E& e);
}

Clase std::exception

namespace std {
  class exception
  {
  public:
    constexpr exception() noexcept;
    constexpr exception(const exception&) noexcept;
    constexpr exception& operator=(const exception&) noexcept;
    constexpr virtual ~exception();
    constexpr virtual const char* what() const noexcept;
  };
}

Clase std::bad_exception

namespace std {
  class bad_exception : public exception
  {
  public:
    // ver descripción para la especificación de las funciones miembro especiales
    constexpr const char* what() const noexcept override;
  };
}

Clase std::nested_exception

namespace std {
  class nested_exception
  {
  public:
    constexpr nested_exception() noexcept;
    constexpr nested_exception(const nested_exception&) noexcept = default;
    constexpr nested_exception& operator=(const nested_exception&) noexcept = default;
    constexpr virtual ~nested_exception() = default;
    // funciones de acceso
    [[noreturn]] constexpr void rethrow_nested() const;
    constexpr exception_ptr nested_ptr() const noexcept;
  };
  template<class T> [[noreturn]] constexpr void throw_with_nested(T&& t);
  template<class E> constexpr void rethrow_if_nested(const E& e);
}

Véase también