Dacons LLP Mailit for C/C++ | Version 1.0.8 |
EmaiExceptions.hppGo 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__*/ |