Utils/Termlib: Extend the completion API
[senf.git] / Utils / Exception.cci
index b745f80..3366fe2 100644 (file)
 ///////////////////////////////cci.p///////////////////////////////////////
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::Exception
+// senf::ExceptionMixin
 
-prefix_ senf::Exception::Exception(std::string const & description)
-    : message_(description)
-{}
+prefix_ senf::ExceptionMixin::ExceptionMixin(std::string const & description)
+    : what_(description),
+      message_(description)
+{
+#ifdef SENF_DEBUG
+    addBacktrace();
+#endif
+}
 
-prefix_ std::string const & senf::Exception::message()
+prefix_ std::string const & senf::ExceptionMixin::message()
     const
 {
     return message_;
 }
 
-prefix_ void senf::Exception::append(std::string text)
+prefix_ void senf::ExceptionMixin::append(std::string text)
 {
     message_ += text;
+    what_ += text;
 }
 
 ///////////////////////////////////////////////////////////////////////////
+// senf::Exception
+
+prefix_ senf::Exception::Exception(std::string const & description)
+    : ExceptionMixin(description)
+{}
+
+///////////////////////////////////////////////////////////////////////////
 // senf::SystemException
 
 prefix_ senf::SystemException::SystemException(std::string const & descr _SENF_EXC_DEBUG_ARGS_ND)