libstdc++
|
Classes | |
class | __cxxabiv1::__forced_unwind |
class | std::bad_alloc |
class | std::bad_any_cast |
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_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 |
Macros | |
#define | __cpp_lib_uncaught_exceptions |
Typedefs | |
typedef void(* | std::terminate_handler) () |
typedef void(* | std::unexpected_handler) () |
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 |
int | std::uncaught_exceptions () noexcept |
void | std::unexpected () |
Classes and functions for reporting errors via exceptions.
typedef void(* std::terminate_handler) () |
typedef void(* std::unexpected_handler) () |
void __gnu_cxx::__verbose_terminate_handler | ( | ) |
A replacement for the standard terminate_handler which prints more information about the terminating exception (if any) on stderr.
Call
to use. For more info, see http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html
In 3.4 and later, this is on by default.
References __gnu_cxx::__verbose_terminate_handler().
Referenced by __gnu_cxx::__verbose_terminate_handler().
|
noexcept |
Obtain an exception_ptr to the currently handled exception.
If there is none, or the currently handled exception is foreign, return the null value.
Referenced by std::make_exception_ptr().
|
noexcept |
Return the current terminate handler.
|
noexcept |
|
noexcept |
Obtain an exception_ptr pointing to a copy of the supplied object.
Definition at line 249 of file exception_ptr.h.
References std::current_exception().
void std::rethrow_exception | ( | exception_ptr | ) |
Throw the object pointed to by the exception_ptr.
References std::rethrow_exception().
Referenced by std::rethrow_exception(), and std::nested_exception::rethrow_nested().
|
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.
Definition at line 208 of file nested_exception.h.
|
noexcept |
Takes a new handler function as an argument, returns the old function.
|
noexcept |
Takes a new handler function as an argument, returns the old function.
|
noexcept |
The runtime will call this function if exception handling must be abandoned for any reason. It can also be called by the user.
Referenced by std::nested_exception::rethrow_nested().
|
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.
Definition at line 148 of file nested_exception.h.
|
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).’
|
noexcept |
The number of uncaught exceptions.
-std=gnu++98
void std::unexpected | ( | ) |
The runtime will call this function if an exception is thrown which violates the function's exception specification.