4 #ifndef OPENVDB_EXCEPTIONS_HAS_BEEN_INCLUDED
5 #define OPENVDB_EXCEPTIONS_HAS_BEEN_INCLUDED
28 try {
return mMessage.c_str(); }
catch (...) {}
37 if (eType) mMessage = eType;
38 if (msg) mMessage +=
": " + (*msg);
47 #define OPENVDB_EXCEPTION(_classname) \
48 class OPENVDB_API _classname: public Exception \
51 _classname() noexcept: Exception( #_classname ) {} \
52 explicit _classname(const std::string& msg) noexcept: Exception( #_classname , &msg) {} \
67 #undef OPENVDB_EXCEPTION
75 Exception(
"IllegalValueException", &msg) {}
82 #define OPENVDB_THROW(exception, message) \
84 std::string _openvdb_throw_msg; \
86 std::ostringstream _openvdb_throw_os; \
87 _openvdb_throw_os << message; \
88 _openvdb_throw_msg = _openvdb_throw_os.str(); \
90 throw exception(_openvdb_throw_msg); \
93 #endif // OPENVDB_EXCEPTIONS_HAS_BEEN_INCLUDED
Exception(const char *eType, const std::string *const msg=nullptr) noexcept
const char * what() const noexceptoverride
#define OPENVDB_USE_VERSION_NAMESPACE
OPENVDB_DEPRECATED IllegalValueException() noexcept
GLsizei const GLchar *const * string
OPENVDB_DEPRECATED IllegalValueException(const std::string &msg) noexcept
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
OPENVDB_EXCEPTION(ArithmeticError)