00001 #ifndef PHX_EXCEPTIONS_H 00002 #define PHX_EXCEPTIONS_H 00003 00011 #include <stdexcept> 00012 00013 namespace Phx { 00014 00020 class Exception : public std::exception { 00021 public: 00031 virtual const char * what () const throw() { 00032 return "Phoenix Exception"; 00033 } 00034 00035 protected: 00036 Exception() { } // protected to prevent direct instantiation 00037 }; 00038 00050 class ResourceException : public Exception { 00051 public: 00052 virtual const char* what() const throw() { 00053 return "Phoenix Resource Exception"; 00054 } 00055 }; 00056 00057 00069 class MemoryException : public ResourceException { 00070 public: 00071 virtual const char* what() const throw() { 00072 return "Phoenix Memory Exception"; 00073 } 00074 }; 00075 00080 class IOException : public ResourceException { 00081 public: 00082 virtual const char* what() const throw() { 00083 return "Phoenix IO Exception"; 00084 } 00085 }; 00086 00096 class InUseException : public ResourceException { 00097 public: 00098 virtual const char* what() const throw() { 00099 return "Phoenix Resource In Use Exception"; 00100 } 00101 }; 00102 00109 class NotFoundException : public ResourceException { 00110 public: 00111 virtual const char* what() const throw() { 00112 return "Phoenix Resource Not Found Exception"; 00113 } 00114 }; 00115 00129 class PermissionException : public ResourceException { 00130 public: 00131 virtual const char* what() const throw() { 00132 return "Phoenix Permission Exception"; 00133 } 00134 }; 00135 00149 class InternalException : public Exception { 00150 public: 00151 virtual const char* what() const throw() { 00152 return "Phoenix Internal Exception"; 00153 } 00154 }; 00155 00167 class RangeException : public Exception { 00168 public: 00169 virtual const char* what() const throw() { 00170 return "Phoenix Range Exception"; 00171 } 00172 }; 00173 00179 class TimeoutException : public Exception { 00180 public: 00181 virtual const char* what() const throw() { 00182 return "Phoenix Timeout Exception"; 00183 } 00184 }; 00185 00186 }; // namespace Phx 00187 00188 #endif /* PHX_EXCEPTIONS_H */
1.4.2