// Exception Handling support header for -*- C++ -*- #ifndef __EXCEPTION__ #define __EXCEPTION__ extern "C++" { namespace std { /** * @defgroup exceptions Exceptions * @ingroup diagnostics * * Classes and functions for reporting errors via exception classes. * @{ */ /** * @brief Base class for all library exceptions. * * This is the base class for all exceptions thrown by the standard * library, and by certain language expressions. You are free to derive * your own %exception classes, or use a different hierarchy, or to * throw non-class data (e.g., fundamental types). */ class exception { public: exception() throw() { } virtual ~exception() throw(); /** Returns a C-style character string describing the general cause * of the current error. */ virtual const char* what() const throw(); }; /** If an %exception is thrown which is not listed in a function's * %exception specification, one of these may be thrown. */ class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); virtual const char* what() const throw(); }; typedef void (*unexpected_handler) (); unexpected_handler set_unexpected(unexpected_handler) throw(); DECLSPEC_NORETURN void unexpected(); bool uncaught_exception() throw(); // @} group exceptions } // namespace std typedef void (*terminate_handler) (); terminate_handler set_terminate(terminate_handler) throw(); DECLSPEC_NORETURN void terminate() throw(); } // extern "C++" #endif