libstdc++
Exceptions
Collaboration diagram for Exceptions:

Classes

class  __cxxabiv1::__forced_unwind
 
struct  __gnu_cxx::forced_exception_error
 
class  std::bad_alloc
 
class  std::bad_cast
 
class  std::bad_exception
 
class  std::bad_typeid
 
class  std::domain_error
 
class  std::exception
 
class  std::invalid_argument
 
class  std::ios_base::failure
 
class  std::length_error
 
class  std::lock_error
 
class  std::logic_error
 
class  std::out_of_range
 
class  std::overflow_error
 
class  std::range_error
 
class  std::regex_error
 
class  std::runtime_error
 
class  std::system_error
 
class  std::underflow_error
 

Typedefs

typedef void(* std::terminate_handler )()
 
typedef void(* std::unexpected_handler )()
 

Functions

void __gnu_cxx::__verbose_terminate_handler ()
 
template<typename _Ex >
exception_ptr std::copy_exception (_Ex __ex) throw ()
 
exception_ptr std::current_exception () throw ()
 
void std::rethrow_exception (exception_ptr) __attribute__((__noreturn__))
 
terminate_handler std::set_terminate (terminate_handler) throw ()
 
unexpected_handler std::set_unexpected (unexpected_handler) throw ()
 
void std::terminate () __attribute__((__noreturn__))
 
bool std::uncaught_exception () throw ()
 
void std::unexpected () __attribute__((__noreturn__))
 

Detailed Description

Classes and functions for reporting errors via exception classes.

Typedef Documentation

typedef void(* std::terminate_handler)()

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

Definition at line 86 of file exception.

typedef void(* std::unexpected_handler)()

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

Definition at line 89 of file exception.

Function Documentation

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.

template<typename _Ex >
exception_ptr std::copy_exception ( _Ex  __ex) throw ()

Obtain an exception_ptr pointing to a copy of the supplied object.

Definition at line 152 of file exception_ptr.h.

References std::current_exception().

exception_ptr std::current_exception ( ) throw ()

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::copy_exception().

void std::rethrow_exception ( exception_ptr  )

Throw the object pointed to by the exception_ptr.

terminate_handler std::set_terminate ( terminate_handler  ) throw ()

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

unexpected_handler std::set_unexpected ( unexpected_handler  ) throw ()

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

void std::terminate ( )

The runtime will call this function if exception handling must be abandoned for any reason. It can also be called by the user.

bool std::uncaught_exception ( ) throw ()

[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 @c uncaught_exception() is true, throwing an %exception can result in a call of @c terminate() (15.5.1)."

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

void std::unexpected ( )

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