libstdc++: Exceptions (original) (raw)

Classes
class __cxxabiv1::__forced_unwind
class std::bad_alloc
class std::experimental::fundamentals_v1::bad_any_cast
class std::bad_cast
class std::bad_exception
class std::bad_function_call
class std::experimental::fundamentals_v1::bad_optional_access
class std::bad_typeid
class std::bad_weak_ptr
class std::domain_error
class std::exception
class std::__unspecified__::exception_ptr
class std::ios_base::failure
struct __gnu_cxx::forced_error
class std::future_error
class std::invalid_argument
class std::length_error
class std::logic_error
class std::nested_exception
class std::out_of_range
class std::overflow_error
class std::range_error
class __gnu_cxx::recursive_init_error
class std::regex_error
class std::runtime_error
class std::system_error
class std::underflow_error
Functions
void __gnu_cxx::__verbose_terminate_handler ()
exception_ptr std::current_exception () noexcept
terminate_handler std::get_terminate () noexcept
unexpected_handler std::get_unexpected () noexcept
template<typename _Ex >
exception_ptr std::make_exception_ptr (_Ex __ex) noexcept
void std::rethrow_exception (exception_ptr)
template<typename _Ex >
void std::rethrow_if_nested (const _Ex &__ex)
terminate_handler std::set_terminate (terminate_handler) noexcept
unexpected_handler std::set_unexpected (unexpected_handler) noexcept
void std::terminate () noexcept
template<typename _Tp >
void std::throw_with_nested (_Tp &&__t)
bool std::uncaught_exception () noexcept
void std::unexpected ()

Since

C++98

Classes and functions for reporting errors via exceptions.

terminate_handler

typedef void(* std::terminate_handler) ()

If you write a replacement terminate handler, it must be of this type.

Definition at line 69 of file exception.

unexpected_handler

typedef void(* std::unexpected_handler) ()

If you write a replacement unexpected handler, it must be of this type.

Definition at line 85 of file exception.

__verbose_terminate_handler()

void __gnu_cxx::__verbose_terminate_handler ( )

current_exception()

Obtain an exception_ptr to the currently handled exception.

If there is none, or the currently handled exception is foreign, return the null value.

Since

C++11

Referenced by std::make_exception_ptr().

get_terminate()

Return the current terminate handler.

get_unexpected()

Return the current unexpected handler.

Since

C++11

Deprecated:

Removed from the C++ standard in C++17

make_exception_ptr()

rethrow_exception()

rethrow_if_nested()

template<typename _Ex >

void std::rethrow_if_nested ( const _Ex & __ex) inline

Rethrow a nested exception

If __ex contains a std::nested_exception object, call its rethrow_nested() member to rethrow the stored exception.

After catching an exception thrown by a call to std::throw_with_nested this function can be used to rethrow the exception that was active when std::throw_with_nested was called.

Since

C++11

Definition at line 208 of file nested_exception.h.

set_terminate()

Takes a new handler function as an argument, returns the old function.

set_unexpected()

Takes a new handler function as an argument, returns the old function.

Deprecated:

Removed from the C++ standard in C++17

terminate()

void std::terminate ( ) noexcept

throw_with_nested()

template<typename _Tp >

void std::throw_with_nested ( _Tp && __t) inline

Throw an exception that also stores the currently active exception.

If _Tp is derived from std::nested_exception or is not usable as a base-class, throws a copy of __t. Otherwise, throws an object of an implementation-defined type derived from both _Tp and std::nested_exception, containing a copy of __t and the result of std::current_exception().

In other words, throws the argument as a new exception that contains the currently active exception nested within it. This is intended for use in a catch handler to replace the caught exception with a different type, while still preserving the original exception. When the new exception is caught, the nested exception can be rethrown by using std::rethrow_if_nested.

This can be used at API boundaries, for example to catch a library's internal exception type and rethrow it nested with a std::runtime_error, or vice versa.

Since

C++11

Definition at line 148 of file nested_exception.h.

uncaught_exception()

bool std::uncaught_exception ( ) noexcept

[18.6.4]/1: 'Returns true after completing evaluation of a throw-expression until either completing initialization of the exception-declaration in the matching handler or entering unexpected() due to the throw; or after entering terminate() for any reason other than an explicit call to terminate(). [Note: This includes stack unwinding [15.2]. end note]'

2: 'When uncaught_exception() is true, throwing an exception can result in a call of 1terminate()‘ (15.5.1).’

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::~sentry().

unexpected()

The runtime will call this function if an exception is thrown which violates the function's exception specification.

Deprecated:

Removed from the C++ standard in C++17