///////////////////////////////cci.p///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
+// senf::ExceptionMixin
+
+prefix_ senf::ExceptionMixin::ExceptionMixin(std::string const & description)
+ : what_(description)
+{
+#ifdef SENF_DEBUG
+ addBacktrace();
+#endif
+}
+
+prefix_ std::string senf::ExceptionMixin::message()
+ const
+{
+#ifdef SENF_DEBUG
+ return what_.substr(excLen_);
+#else
+ return what_;
+#endif
+}
+
+prefix_ std::string senf::ExceptionMixin::backtrace()
+ const
+{
+#ifdef SENF_DEBUG
+ return what_.substr(0,excLen_-4);
+#else
+ return "";
+#endif
+}
+
+prefix_ void senf::ExceptionMixin::append(std::string text)
+{
+ what_ += text;
+}
+
+///////////////////////////////////////////////////////////////////////////
// senf::Exception
+
prefix_ senf::Exception::Exception(std::string const & description)
- : message_(description)
+ : ExceptionMixin(description)
{}
///////////////////////////////////////////////////////////////////////////
+// senf::SystemException
prefix_ senf::SystemException::SystemException(std::string const & descr _SENF_EXC_DEBUG_ARGS_ND)
{