Nemiver  0.3
Classes | Namespaces | Macros
nmv-exception.h File Reference
#include <cstdlib>
#include <stdexcept>
#include "nmv-ustring.h"
#include "nmv-log-stream-utils.h"

Go to the source code of this file.

Classes

class  nemiver::common::Exception
 

Namespaces

 nemiver
 
 nemiver::common
 

Macros

#define _THROW(EXPR)
 
#define _THROW_EMPTY
 
#define THROW_IF_FAIL(a_cond)
 
#define THROW_IF_FAIL2(a_cond, a_reason)
 
#define THROW_IF_FAIL3(a_cond, type, a_reason)
 
#define ABORT_IF_FAIL(a_cond)
 
#define ABORT_IF_FAIL2(a_cond, a_reason)
 
#define ABORT(a_reason)
 
#define THROW(a_reason)
 
#define THROW_EMPTY
 
#define THROW_EXCEPTION(type, message)
 
#define TRACE_EXCEPTION(exception)   LOG_EXCEPTION ("catched exception: " << exception.what () << "\n")
 
#define RETHROW_EXCEPTION(exception)   LOG_EXCEPTION ("catched and rethrowing exception: " << exception.what() << "\n")
 
#define RETURN_VAL_IF_FAIL(expression, value)
 
#define RETURN_IF_FAIL(expression)
 
#define NEMIVER_TRY   try {
 
#define NEMIVER_CATCH_NOX
 
#define NEMIVER_CATCH_AND_RETURN_NOX(a_value)
 

Macro Definition Documentation

◆ _THROW

#define _THROW (   EXPR)
Value:
if (std::getenv ("nmv_abort_on_throw")) \
abort (); \
else \
throw (EXPR);

◆ _THROW_EMPTY

#define _THROW_EMPTY
Value:
if (std::getenv ("nmv_abort_on_throw")) \
abort (); \
else \
throw;

◆ ABORT

#define ABORT (   a_reason)
Value:
do { \
LOG_EXCEPTION("aborting because: #a_reason"); abort(); \
} while (false)

◆ ABORT_IF_FAIL

#define ABORT_IF_FAIL (   a_cond)
Value:
if (!(a_cond)) { \
LOG_EXCEPTION ("condition (" << #a_cond << ") failed; aborting");\
}

◆ ABORT_IF_FAIL2

#define ABORT_IF_FAIL2 (   a_cond,
  a_reason 
)
Value:
if (!(a_cond)) { \
LOG_EXCEPTION ("condition (" << #a_cond << ") failed; aborting because " << a_reason <<"\n"); abort();\
}

◆ NEMIVER_CATCH_AND_RETURN_NOX

#define NEMIVER_CATCH_AND_RETURN_NOX (   a_value)
Value:
} catch (Glib::Exception &e) { \
LOG_ERROR (e.what ()); \
return a_value; \
} catch (std::exception &e) { \
LOG_ERROR (e.what ()); \
return a_value; \
} catch (...) { \
LOG_ERROR ("An unknown error occured"); \
return a_value; \
}

◆ NEMIVER_CATCH_NOX

#define NEMIVER_CATCH_NOX
Value:
} catch (Glib::Exception &e) { \
LOG_ERROR (e.what ()); \
} catch (std::exception &e) { \
LOG_ERROR (e.what ()); \
} catch (...) { \
LOG_ERROR ("An unknown error occured"); \
}

◆ NEMIVER_TRY

#define NEMIVER_TRY   try {

◆ RETHROW_EXCEPTION

#define RETHROW_EXCEPTION (   exception)    LOG_EXCEPTION ("catched and rethrowing exception: " << exception.what() << "\n")

◆ RETURN_IF_FAIL

#define RETURN_IF_FAIL (   expression)
Value:
if (!(expression)) { \
LOG_ERROR ("assertion " << #expression << " failed. Returning.\n"); \
return; \
}

◆ RETURN_VAL_IF_FAIL

#define RETURN_VAL_IF_FAIL (   expression,
  value 
)
Value:
if (!(expression)) { \
LOG_ERROR ("assertion " << #expression << " failed. Returning " << #value << "\n"); \
return value; \
}

◆ THROW

#define THROW (   a_reason)
Value:
LOG_EXCEPTION ("raised exception: "<< (nemiver::common::UString (a_reason)) << "\n"); \

◆ THROW_EMPTY

#define THROW_EMPTY
Value:
LOG_EXCEPTION ("raised empty exception " << endl); \
_THROW_EMPTY

◆ THROW_EXCEPTION

#define THROW_EXCEPTION (   type,
  message 
)
Value:
LOG_EXCEPTION ("raised " << #type << ": "<< message<< "\n"); \
_THROW (type (message));

◆ THROW_IF_FAIL

#define THROW_IF_FAIL (   a_cond)
Value:
if (!(a_cond)) { \
LOG_EXCEPTION ("condition (" << #a_cond << ") failed; raising exception\n" );\
(nemiver::common::UString ("Assertion failed: ") + #a_cond)) ;\
}

◆ THROW_IF_FAIL2

#define THROW_IF_FAIL2 (   a_cond,
  a_reason 
)
Value:
if (!(a_cond)) { \
LOG_EXCEPTION ("condition (" << #a_cond << ") failed; raising exception " << a_reason <<"\n");\
_THROW (nemiver::common::Exception (a_reason)) ;\
}

◆ THROW_IF_FAIL3

#define THROW_IF_FAIL3 (   a_cond,
  type,
  a_reason 
)
Value:
if (!(a_cond)) { \
LOG_EXCEPTION ("condition (" << #a_cond << ") failed; raising exception " << #type << \
<< ": " << a_reason << "\n" ); _THROW (type (a_reason)) ;\
}

◆ TRACE_EXCEPTION

#define TRACE_EXCEPTION (   exception)    LOG_EXCEPTION ("catched exception: " << exception.what () << "\n")
nemiver::common::UString
Definition: nmv-ustring.h:45
_THROW
#define _THROW(EXPR)
Definition: nmv-exception.h:53
nemiver::common::Exception
Definition: nmv-exception.h:41
nemiver::common::endl
LogStream & endl(LogStream &)
log a '\n' and flushes the stream Use it like: nemiver::LogStream out; out << "hello"<< nemiver::endl...