added more or less meaningful descriptions when throwing SystemExceptions
[senf.git] / senf / Utils / Exception.hh
index df47d2b..9bca764 100644 (file)
 #include <string>
 #include <iostream>
 #include <sstream>
-#include <boost/preprocessor/repeat.hpp>
-#include <boost/preprocessor/cat.hpp>
 #include <boost/utility.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 #include <senf/config.hh>
+#include "senfassert.hh"
+
 
 //#include "Exception.mpp"
 //-/////////////////////////////////////////////////////////////////////////////////////////////////
@@ -318,7 +318,10 @@ namespace senf {
 #       define SENF_EXC_DEBUGINFO
 #   endif
 
-#   define SENF_THROW_SYSTEM_EXCEPTION(desc) throw senf::SystemException(desc SENF_EXC_DEBUGINFO)
+#   define SENF_THROW_SYSTEM_EXCEPTION(desc)                        \
+        SENF_STATIC_ASSERT( sizeof(desc) > 1,                       \
+            EMPTY_DESCRIPTION_FOR_SYSTEM_EXCEPTION_NOT_ALLOWED);    \
+        throw senf::SystemException(desc SENF_EXC_DEBUGINFO)
 
 }