00001 #ifndef __CException__ 00002 #define __CException__ 00003 00004 // =========================================================================== 00005 00006 #include "../Basics/CString.hpp" 00007 #include <exception> 00008 00009 // =========================================================================== 00010 00011 using Exponent::Basics::CString; 00012 using namespace std; 00013 00014 // =========================================================================== 00015 00016 namespace Exponent 00017 { 00018 namespace Exceptions 00019 { 00038 class CException : public CCountedObject 00039 { 00041 EXPONENT_CLASS_DECLARATION; 00044 // =========================================================================== 00045 00046 public: 00047 00048 // =========================================================================== 00049 00056 CException(const CString &errorReason, const CString &functionName, const bool isSerious = true); 00057 00061 virtual ~CException(); 00062 00063 // =========================================================================== 00064 00069 virtual const CString &getErrorReason() const; 00070 00075 virtual const CString &getFunctionName() const; 00076 00081 virtual bool errorIsSerious() const; 00082 00083 // =========================================================================== 00084 00085 protected: 00086 00087 // =========================================================================== 00088 00089 CString m_errorReason; 00090 CString m_functionName; 00091 bool m_isSerious; 00092 }; 00093 } 00094 } 00095 #endif // End of CException.hpp