|
|
bad_exception , exception , set_terminate , set_unexpected , terminate , terminate_handler , uncaught_exception , unexpected , unexpected_handler - defines several functions that control exception handling
exceptionnamespace std { class exception; class bad_exception; // FUNCTIONS typedef void (*terminate_handler)(); typedef void (*unexpected_handler)(); terminate_handler set_terminate(terminate_handler ph) throw(); unexpected_handler set_unexpected(unexpected_handler ph) throw(); void terminate(); void unexpected(); bool uncaught_exception(); );
<exception>
to define several types and functions related to the handling
of exceptions.
class bad_exception : public exception { };
The class describes an exception that can be thrown from an
unexpected handler.
The value returned by
what()
is an implementation-defined
C string.
None of the member functions
throw any exceptions.
class exception { public: exception() throw(); exception(const exception& rhs) throw(); exception& operator=(const exception& rhs) throw(); virtual ~exception() throw(); virtual const char *what() const throw(); };
The class serves as the base class for all exceptions thrown
by certain expressions and by the Standard C++ library. The
C string value returned by
what()
is left unspecified by the default constructor,
but may be defined by the constructors for certain derived classes
as an implementation-defined
C string.
None of the member functions throw any exceptions.
terminate_handler set_terminate(terminate_handler ph) throw();
The function establishes a new
terminate handler
as the function *ph
. Thus, ph
must
not be a null pointer. The function returns the address of the
previous terminate handler.
unexpected_handler set_unexpected(unexpected_handler ph) throw();
The function establishes a new
unexpected handler
as the function *ph
. Thus, ph
must
not be a null pointer. The function returns the address of the
previous unexpected handler.
void terminate();
The function calls a
terminate handler,
a function of type void ()
.
If terminate
is called directly by the program,
the terminate handler is the one most recently set by a call to
set_terminate
.
If terminate
is called for any of several other
reasons during evaluation of a throw expression,
the terminate handler is the one in effect immediately after
evaluating the throw expression.
A terminate handler may not return to its caller. At
program startup,
the terminate handler is a function that calls
abort()
.
typedef void (*terminate_handler)();
The type describes a pointer to a function suitable for use as a terminate handler.
bool uncaught_exception();
The function returns true only if a thrown exception is being currently
processed. Specifically, it returns true after completing evaluation of a
throw expression and before completing initialization of the exception
declaration in the matching handler or calling
unexpected
as a result of the
throw expression.
void unexpected();
The function calls an
unexpected handler,
a function of type void ()
.
If unexpected
is called directly by the program,
the unexpected handler is the one most recently set by a call to
set_unexpected
.
If unexpected
is called when control
leaves a function by a thrown exception of a type not permitted by an
exception specification
for the function, as in:
void f() throw() // function may throw no exceptions {throw "bad"; } // throw calls unexpected()
the unexpected handler is the one in effect immediately after evaluating the throw expression.
An unexpected handler may not return to its caller. It may terminate execution by:
bad_exception
terminate()
,
abort()
, or
exit(int)
At program startup,
the unexpected handler is a function that calls
terminate()
.
typedef void (*unexpected_handler)();
The type describes a pointer to a function suitable for use as an unexpected handler.
Copyright © 1992-1996 by P.J. Plauger. Portions derived from work copyright © 1994 by Hewlett-Packard Company. All rights reserved.