00001 //---------------------------------------------------------------------------- 00002 /** @file SgException.h 00003 Base class for exceptions. 00004 */ 00005 //---------------------------------------------------------------------------- 00006 00007 #ifndef SG_EXCEPTION_H 00008 #define SG_EXCEPTION_H 00009 00010 #include <exception> 00011 #include <string> 00012 00013 //---------------------------------------------------------------------------- 00014 00015 /** Base class for exceptions. */ 00016 class SgException 00017 : public std::exception 00018 { 00019 public: 00020 /** Construct with no message. */ 00021 SgException(); 00022 00023 /** Construct with message. */ 00024 SgException(const std::string& message); 00025 00026 /** Destructor. */ 00027 virtual ~SgException() throw(); 00028 00029 /** Implementation of std::exception::what(). */ 00030 const char* what() const throw(); 00031 00032 private: 00033 std::string m_message; 00034 }; 00035 00036 //---------------------------------------------------------------------------- 00037 00038 #endif // SG_EXCEPTION_H