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
|