xref: /reactos/sdk/include/c++/exception (revision fb5d5ecd)
1// Exception Handling support header for -*- C++ -*-
2
3#ifndef __EXCEPTION__
4#define __EXCEPTION__
5
6#include <crtdefs.h>
7
8extern "C++" {
9
10class exception
11{
12public:
13    exception() throw();
14    exception(const char * const &) throw();
15    exception(const char * const &, int) throw();
16
17    virtual ~exception() throw();
18
19    virtual const char *what() const throw();
20private:
21    const char *_name;
22    int _do_free;
23};
24
25class bad_exception : public exception
26{
27public:
28    bad_exception(const char *name = "bad exception") throw()
29        : exception(name) { }
30
31    virtual ~bad_exception() throw() { }
32};
33
34namespace std
35{
36    using ::exception;
37    using ::bad_exception;
38
39    typedef void (*unexpected_handler) ();
40
41    unexpected_handler set_unexpected(unexpected_handler) throw();
42
43    __MINGW_ATTRIB_NORETURN void unexpected();
44
45    bool uncaught_exception() throw();
46} // namespace std
47
48typedef void (*terminate_handler) ();
49terminate_handler set_terminate(terminate_handler) throw();
50__MINGW_ATTRIB_NORETURN void terminate() throw();
51
52} // extern "C++"
53
54#endif
55