introduce DBG_UNHANDLED_EXCEPTION_WHEN for calls with an explanatory message

Change-Id: Ic80f2ed2c0fdff20d1ee1968bec2840bf914fb5e
This commit is contained in:
Eike Rathke 2016-11-25 16:13:03 +01:00
parent 9d2f30911d
commit 6c60aa313c
2 changed files with 14 additions and 2 deletions

View File

@ -27,7 +27,9 @@
#include <tools/toolsdllapi.h>
TOOLS_DLLPUBLIC void DbgUnhandledException(const css::uno::Any& caughtException, const char* currentFunction, const char* fileAndLineNo);
TOOLS_DLLPUBLIC void DbgUnhandledException(const css::uno::Any& caughtException,
const char* currentFunction, const char* fileAndLineNo,
const char* explanatory = nullptr);
#if OSL_DEBUG_LEVEL > 0
#include <com/sun/star/configuration/CorruptedConfigurationException.hpp>
@ -43,8 +45,12 @@ TOOLS_DLLPUBLIC void DbgUnhandledException(const css::uno::Any& caughtException,
#define DBG_UNHANDLED_EXCEPTION() \
DbgUnhandledException( ::cppu::getCaughtException(), OSL_THIS_FUNC, SAL_DETAIL_WHERE);
#define DBG_UNHANDLED_EXCEPTION_WHEN(explain) \
DbgUnhandledException( ::cppu::getCaughtException(), OSL_THIS_FUNC, SAL_DETAIL_WHERE, explain);
#else // OSL_DEBUG_LEVEL
#define DBG_UNHANDLED_EXCEPTION()
#define DBG_UNHANDLED_EXCEPTION_WHEN(explain)
#endif // OSL_DEBUG_LEVEL
/** This macro asserts the given condition (in debug mode), and throws

View File

@ -76,10 +76,16 @@ void DbgTestSolarMutex()
#endif
void DbgUnhandledException(const css::uno::Any & caught, const char* currentFunction, const char* fileAndLineNo)
void DbgUnhandledException(const css::uno::Any & caught, const char* currentFunction, const char* fileAndLineNo,
const char* explanatory)
{
OString sMessage( "DBG_UNHANDLED_EXCEPTION in " );
sMessage += currentFunction;
if (explanatory)
{
sMessage += "\n when: ";
sMessage += explanatory;
}
sMessage += "\n type: ";
sMessage += OUStringToOString( caught.getValueTypeName(), osl_getThreadTextEncoding() );
css::uno::Exception exception;