00001 #ifndef Mag_MagExceptions_H 00002 #define Mag_MagExceptions_H 00003 00004 #include <exception> 00005 #include <string> 00006 00007 class MagException : public std::exception { 00008 public: 00009 MagException() throw() {} 00010 MagException( const char *message); 00011 virtual ~MagException() throw(); 00012 virtual const char* what() const throw(); 00013 private: 00014 std::string theMessage; 00015 }; 00016 00017 class MagGeometryError : public MagException { 00018 public: 00019 MagGeometryError() throw() {} 00020 MagGeometryError(const char *message) : MagException(message) {} 00021 virtual ~MagGeometryError() throw() {} 00022 }; 00023 00024 class MagLogicError : public MagException { 00025 public: 00026 MagLogicError() throw() {} 00027 MagLogicError(const char *message) : MagException(message) {} 00028 virtual ~MagLogicError() throw() {} 00029 }; 00030 00031 class GridInterpolator3DException : public std::exception { 00032 public: 00033 00034 GridInterpolator3DException(double a1, double b1, double c1, 00035 double a2, double b2, double c2) throw(); 00036 virtual ~GridInterpolator3DException() throw(); 00037 virtual const char* what() const throw(); 00038 double *limits(void) {return limits_;} 00039 protected: 00040 double limits_[6]; 00041 }; 00042 00043 #endif