20 #include "gu_macros.h"
21 #include "gu_exception.hpp"
30 const char*
const file;
31 const char*
const func;
33 std::ostringstream os;
35 ThrowBase (
const char* file_,
const char* func_,
int line_)
61 base (file_, func_, line_),
67 base.os <<
": " << err <<
" (" << ::strerror(err) <<
')';
71 e.trace (base.file, base.func, base.line);
76 std::ostringstream& msg () {
return base.os; }
88 ThrowFatal (
const char* file,
const char* func,
int line)
90 base (file, func, line)
95 base.os <<
" (FATAL)";
97 Exception e(base.os.str(), ENOTRECOVERABLE);
99 e.trace (base.file, base.func, base.line);
104 std::ostringstream& msg () {
return base.os; }
114 #define gu_throw_error(err_) \
115 gu::ThrowError(__FILE__, __FUNCTION__, __LINE__, err_).msg()
117 #define gu_throw_fatal \
118 gu::ThrowFatal(__FILE__, __FUNCTION__, __LINE__).msg()
120 #endif // __GU_THROW__
Definition: gu_throw.hpp:52
Definition: gu_exception.hpp:19
Definition: gu_throw.hpp:84
Definition: gu_throw.hpp:26