00001 00009 #ifndef PUMA_EXCEPTION_H 00010 #define PUMA_EXCEPTION_H 00011 00012 #include <exception> 00013 #include <string> 00014 00015 namespace puma2 { 00016 00024 class PumaException : public std::exception { 00025 public: 00029 typedef enum { 00030 inaccuracy, 00031 faulty, 00032 ignorable, 00033 intolerable 00034 } exceptionSeverity; 00035 00036 private: 00040 std::string message; 00041 exceptionSeverity severity; 00042 00043 public: 00044 00048 PumaException(); 00049 00055 PumaException(exceptionSeverity severity, std::string &msg); 00056 00060 virtual ~PumaException() throw (); 00061 00065 std::string description() const; 00066 }; 00067 00068 } 00069 #endif /* PUMA_EXCEPTION_H */