Dacons LLP Mailit for C/C++ Version 1.0.8

EmaiExceptions.hpp

Go to the documentation of this file.
00001 
00014 #ifndef __EMAIEXCEPTIONS_HPP__
00015 #define __EMAIEXCEPTIONS_HPP__
00016 
00017 #include <EmaiErrors.h>
00018 namespace Emai
00024 {
00025 
00030 class Exception
00031 {
00032 protected:
00033 
00034     EmaiError               mErrorCode;
00035 
00036                                         Exception();
00037 public:
00038     
00039                                         ~Exception()
00040                                         {
00041                                         }
00042                                         Exception(EmaiError inErrorCode):
00043                                         mErrorCode(inErrorCode)
00044                                         {
00045                                         }
00046 
00052     EmaiError                           GetErrorCode() const
00053                                         {
00054                                             return mErrorCode;
00055                                         }
00056 };
00057 
00064 class CommandFailedException : public Exception
00065 {
00066 protected:
00067 
00068 public:
00069     
00070                                         ~CommandFailedException()
00071                                         {
00072                                         }
00073                                         CommandFailedException():
00074                                         Exception(EmaiErrCommandFailed)
00075                                         {
00076                                         }
00077 };
00078 
00085 class CallNotInContextException : public Exception
00086 {
00087 protected:
00088 
00089 public:
00090     
00091                                         ~CallNotInContextException()
00092                                         {
00093                                         }
00094                                         CallNotInContextException():
00095                                         Exception(EmaiErrCallNotInContext)
00096                                         {
00097                                         }
00098 };
00099 
00104 class CommandCancelledException : public Exception
00105 {
00106 protected:
00107 
00108 public:
00109     
00110                                         ~CommandCancelledException()
00111                                         {
00112                                         }
00113                                         CommandCancelledException():
00114                                         Exception(EmaiErrInterruptedByUser)
00115                                         {
00116                                         }
00117 };
00118 
00119 inline void
00120 CheckErrorCode(
00121         EmaiError inErrorCode)
00122 {
00123     switch (inErrorCode)
00124     {
00125         case EmaiErrNoErr:
00126             break;
00127         case EmaiErrCommandFailed:
00128             throw CommandFailedException();
00129             break;
00130         case EmaiErrCallNotInContext:
00131             throw CallNotInContextException();
00132             break;
00133         case EmaiErrInterruptedByUser:
00134             throw CommandCancelledException();
00135             break;
00136         default:
00137             throw Exception(inErrorCode);
00138             break;
00139     }
00140 }
00141 
00142 }
00143 #endif /*__EMAIEXCEPTIONS_HPP__*/