00001 #ifndef REBECCA_EXCEPTIONS_H
00002 #define REBECCA_EXCEPTIONS_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <rebecca/exports.h>
00028
00029
00030 namespace rebecca
00031 {
00032
00033 namespace impl
00034 {
00035
00055 class REBECCA_EXPORT Exception
00056 {
00057 public:
00058
00072 virtual const char* what() const throw()
00073 {
00074 return "unknown exception";
00075 }
00076
00080 virtual ~Exception() { }
00081 };
00082
00092 class REBECCA_EXPORT IllegalArgumentException : public Exception
00093 {
00094 public:
00095
00099 virtual ~IllegalArgumentException() { }
00100 };
00101
00110 class REBECCA_EXPORT FileNotFoundException : public Exception
00111 {
00112 public:
00113
00117 virtual ~FileNotFoundException() { }
00118 };
00119
00128 class REBECCA_EXPORT DirectoryNotFoundException : public Exception
00129 {
00130 public:
00131
00135 virtual ~DirectoryNotFoundException() { }
00136 };
00137
00148 class REBECCA_EXPORT InitializationException : public Exception
00149 {
00150 public:
00151
00155 virtual ~InitializationException() { }
00156 };
00157
00165 class REBECCA_EXPORT XMLErrorException : public Exception
00166 {
00167 public:
00168
00172 virtual ~XMLErrorException() { }
00173 };
00174
00179 class REBECCA_EXPORT RecursionException : public Exception
00180 {
00181 public:
00182
00186 virtual ~RecursionException() { }
00187 };
00188
00189
00217 class REBECCA_EXPORT InternalProgrammerErrorException : public Exception
00218 {
00219 public:
00223 virtual ~InternalProgrammerErrorException() { }
00224 };
00225
00226 }
00227
00228
00229 using rebecca::impl::Exception;
00230 using rebecca::impl::IllegalArgumentException;
00231 using rebecca::impl::FileNotFoundException;
00232 using rebecca::impl::DirectoryNotFoundException;
00233 using rebecca::impl::InitializationException;
00234 using rebecca::impl::XMLErrorException;
00235 using rebecca::impl::InternalProgrammerErrorException;
00236 using rebecca::impl::RecursionException;
00237 }
00238
00239
00240 #endif