diff options
Diffstat (limited to 'include/Exceptions.h')
-rw-r--r-- | include/Exceptions.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/Exceptions.h b/include/Exceptions.h index 98f6c52..17fe093 100644 --- a/include/Exceptions.h +++ b/include/Exceptions.h @@ -5,6 +5,7 @@ #include <stddef.h> #include <string.h> #include <stdlib.h> +#include <vector> #include <generic.h> #if !defined pid_t && !defined _SYS_TYPES_H @@ -35,10 +36,14 @@ class Base { static void exit(int); static void printm(int level, const ugly_string &, ...); static void printm(int level, const char *, ...); + static void exception(const String &); + static void pushcontext(const String &); + static void popcontext(void); + static void flushcontext(void); + private: + static std::vector<String> context; }; -class String; - class GeneralException : public Base { public: GeneralException(String); @@ -61,6 +66,7 @@ void * xrealloc(void *, size_t); int xpipe(int *, int = 0) throw (GeneralException); pid_t xfork() throw (GeneralException); void xexit(int) throw (GeneralException); +void xexception(const String &) throw (GeneralException); class MemoryException : public GeneralException { public: |