00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef H_LIBTHROWABLE_USER_FAULT
00021 #define H_LIBTHROWABLE_USER_FAULT
00022 #include "exception.h"
00023 #include "system.h"
00024 namespace libthrowable {
00052 class LIBTHROWABLE_API UserFault : public Exception
00053 {
00054 public:
00059 explicit UserFault(const std::string& msg) throw();
00060
00062 UserFault(const char *filename, int linenumber, const std::string& msg) throw();
00063
00065 UserFault(const char *filename, int linenumber, const char *function, const std::string& msg) throw();
00066
00068 UserFault(const std::exception& cause, const std::string& msg) throw();
00069
00071 virtual const std::string& getMessage() const throw();
00072
00073 virtual ~UserFault() throw();
00074
00075 protected:
00081 UserFault(const std::string& msg, const std::string& passUnmodifiedToException) throw();
00082
00086 std::string& getInternalMessage() throw();
00087
00088 private:
00089 std::string _message;
00090 };
00091 std::ostream& operator<<(std::ostream& os, const UserFault& uf);
00092 }
00093 #endif