Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #pragma once
00019
00020 #ifndef __OpenKarto_Exception_h__
00021 #define __OpenKarto_Exception_h__
00022
00023 #include <OpenKarto/String.h>
00024
00025 namespace karto
00026 {
00027
00029
00030
00034
00038 class KARTO_EXPORT Exception
00039 {
00040 public:
00045 Exception(const char* pMessage);
00046
00052 Exception(const String& rMessage = "Karto Exception", kt_int32s errorCode = 0);
00053
00057 Exception(const Exception& rOther);
00058
00062 virtual ~Exception();
00063
00064 public:
00068 Exception& operator=(const Exception& rException);
00069
00070 public:
00075 const String& GetErrorMessage() const;
00076
00081 kt_int32s GetErrorCode();
00082
00083 public:
00087 friend KARTO_FORCEINLINE std::ostream& operator << (std::ostream& rStream, Exception& rException)
00088 {
00089 rStream << "Karto Fatal Error: " << std::endl;
00090 rStream << " ==> error code: " << rException.GetErrorCode() << std::endl;
00091 rStream << " ==> error message: " << rException.GetErrorMessage() << std::endl;
00092 return rStream;
00093 }
00094
00095 private:
00096 String m_Message;
00097 kt_int32s m_ErrorCode;
00098 };
00099
00101 }
00102
00103 #endif // __OpenKarto_Exception_h__