00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_NET_URISYNTAXEXCEPTION_H_
00019 #define _DECAF_NET_URISYNTAXEXCEPTION_H_
00020
00021 #include <decaf/util/Config.h>
00022 #include <decaf/lang/Exception.h>
00023
00024 namespace decaf{
00025 namespace net{
00026
00027 class DECAF_API URISyntaxException : public lang::Exception {
00028 private:
00029
00030 std::string reason;
00031 std::string input;
00032 int index;
00033
00034 public:
00035
00039 URISyntaxException();
00040
00046 URISyntaxException(const Exception& ex);
00047
00053 URISyntaxException(const URISyntaxException& ex);
00054
00066 URISyntaxException(const char* file, const int lineNumber, const std::exception* cause, const char* msg, ...);
00067
00074 URISyntaxException(const std::exception* cause);
00075
00086 URISyntaxException(const char* file, const int lineNumber, const char* msg);
00087
00098 URISyntaxException(const char* file, const int lineNumber, const std::string& input, const std::string& reason);
00099
00111 URISyntaxException(const char* file, const int lineNumber, const std::string& input, const std::string& reason, int index);
00112
00120 virtual URISyntaxException* clone() const {
00121 return new URISyntaxException(*this);
00122 }
00123
00124 virtual ~URISyntaxException() throw();
00125
00129 std::string getInput() const {
00130 return input;
00131 }
00132
00136 std::string getReason() const {
00137 return reason;
00138 }
00139
00143 int getIndex() const {
00144 return index;
00145 }
00146
00147 };
00148
00149 }}
00150
00151 #endif