9#define NEM_RUNTIME_ASSERT(condition, message) assert((condition) && (message))
15 enum class Kind :
unsigned char
26 template <nem::scalar_type T>
30 return std::numeric_limits<T>::quiet_NaN();
49#if defined(NEM_ERR_LOG)
72#if defined(_STDEXCEPT_) && defined(NEM_ERR_THROW)
79 throw std::out_of_range(msg);
83 throw std::logic_error(msg);
87 throw std::invalid_argument(msg);
92 throw std::runtime_error(msg);
102 internal::force_throw(msg, type);
112 internal::force_throw(msg ? msg :
"Invalid result", kind);
119 template <
typename T>
void force_log(nem_string msg, nem::error::Kind type=Kind::RuntimeError)
void push_log_prefix(nem_string prefix, nem_string msg)
T invalid_result_base()
For non-scalar objects.
void push_log(nem_string msg)
void report(nem_string msg, nem::error::Kind type=Kind::RuntimeError)
T invalid_result(nem::error::Kind kind=Kind::RuntimeError, const char *const msg=nullptr)
void report_invalid(nem::error::Kind kind=Kind::RuntimeError, const char *const msg=nullptr)
const char * GET_C_STRING(nem_string str)