26 #ifndef __TERRALIB_COMMON_INTERNAL_EXCEPTION_H 27 #define __TERRALIB_COMMON_INTERNAL_EXCEPTION_H 87 virtual int code()
const throw();
94 virtual const char* what()
const throw();
101 virtual const char* getClassName()
const throw();
125 #define TE_DECLARE_EXCEPTION_CLASS(API_DECL, ClassName, BaseExceptionClass) \ 126 class API_DECL ClassName : public virtual BaseExceptionClass \ 130 ClassName() throw() { } \ 132 explicit ClassName(const std::string& what, int code = te::common::UNKNOWN_EXCEPTION) throw(); \ 134 explicit ClassName(const char* const what, int code = te::common::UNKNOWN_EXCEPTION) throw(); \ 136 virtual ~ClassName() throw(); \ 138 virtual const char* getClassName() const throw(); \ 144 #define TE_DEFINE_EXCEPTION_CLASS(ClassName, BaseExceptionClass, ClassNameAsLiteral) \ 145 ClassName::ClassName(const std::string& what, int code) throw() \ 146 : BaseExceptionClass(what, code) \ 152 ClassName::ClassName(const char* const what, int code) throw() \ 153 : BaseExceptionClass(what, code) \ 159 ClassName::~ClassName() throw() = default; \ 161 const char* ClassName::getClassName() const throw() \ 163 return ClassNameAsLiteral; \ 166 #endif // __TERRALIB_COMMON_INTERNAL_EXCEPTION_H std::ostream & operator<<(const Exception &e, std::ostream &o)
It serializes the exception and sends it to the output stream.
std::string m_msg
The internal exception message.
Configuration flags for the TerraLib Common Runtime module.
int m_code
The internal exception code.
#define TECOMMONEXPORT
You can use this macro in order to export/import classes and functions from this module.
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...