#ifndef _COMMON_EXCEPTION_HPP_ #define _COMMON_EXCEPTION_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif class Exception { public: Exception(){mReason="";} Exception(const String &reason){mReason=reason;} virtual ~Exception(){;} virtual String toString(){return mReason;} const String &getReason(void)const{return mReason;}; private: String mReason; }; class BoundaryError : public Exception { public : String toString(){return "BoundaryError";} }; class NullError : public Exception { public : String toString(){return "NullError";} }; class ArrayIndexOutOfBoundsException : public Exception { public : String toString(){return "ArrayIndexOutOfBounds";} }; class LibraryNotFoundException : public Exception { public: LibraryNotFoundException(const String &reason="LibraryNotFoundException"):Exception(reason){;} String toString(){return getReason();} }; class InvalidStateException : public Exception { public: InvalidStateException(const String &reason="InvalidStateException"):Exception(reason){;} String toString(){return getReason();} }; class InvalidOperationException : public Exception { public: InvalidOperationException(const String &reason="InvalidOperationException"):Exception(reason){;} String toString(){return getReason();} }; #endif