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