|
VMS Help CXXLSTD, Runtime Support, unexpected_handler *Conan The Librarian |
Standard C++ Library
NAME unexpected_handler, set_unexpected, unexpected,
uncaught_exception The type unexpected_handler and functions
set_unexpected(), unexpected(), and uncaught_exception support
abnormal program termination.
SYNOPSIS
#include <exception>
namespace std {
typedef void (*unexpected_handler)();
unexpected_handler set_unexpected(unexpected_handler new_h) throw();
void unexpected();
bool uncaught_exception();
}
DESCRIPTION
typedef void (*unexpected_handler)();
unexpected_handler is the type of a handler function called by
unexpected() when a function attempts to throw an exception not
listed in its exception-specification. The required behavior of an
unexpected_handler is to throw an exception or terminate program
execution without returning to the caller. The unexpected_handler
may perform any of the following:
o throw an exception that satisfies the exception specification
(if the call to unexpected() is from the program not from
the implementation any exception may be thrown)
o throw an exception of class bad_exception or of any
class directly or indirectly derived from bad_exception.
o call terminate()
o call abort() or exit()
The Standard C++ Library provides a unexpected_handler which is
called by default. The library provided unexpected_handler
calls terminate().
unexpected_handler set_unexpected(unexpected_handler new_h) throw();
set_unexpected() sets the current unexpected_handler to the function
passed in as its unexpected_handler input parameter. It returns
the previous unexpected_handler. The function is not allowed to
be a null pointer.
void unexpected();
unexpected() is called by the implementation when a function exits
by an exception not allowed by its exception specification. It
may be directly called by a user program. If called by the
implementation, unexpected() calls the unexpected_handler function
in effect after evaluating the throw-expression. If called by the
program, unexpected() calls the current unexpected_handler
function.
bool uncaught_exception();
uncaught_exception() returns true if a thrown exception is currently
being processed.
SEE ALSO
bad_exception, terminate
STANDARDS CONFORMANCE
ANSI X3J16/ISO WG21 Joint C++ Committee
|
|