diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp index 3ce9f8f5a0..d11a35fc09 100644 --- a/src/Gui/ApplicationPy.cpp +++ b/src/Gui/ApplicationPy.cpp @@ -29,6 +29,8 @@ # include #endif +#include +#include #include "Application.h" #include "BitmapFactory.h" @@ -529,6 +531,17 @@ PyObject* Application::sActivateWorkbenchHandler(PyObject * /*self*/, PyObject * PyErr_SetString(PyExc_Exception, e.what()); return 0; } + catch (const XERCES_CPP_NAMESPACE_QUALIFIER TranscodingException& e) { + std::stringstream err; + char *pMsg = XERCES_CPP_NAMESPACE_QUALIFIER XMLString::transcode(e.getMessage()); + err << "Transcoding exception raised in activateWorkbench.\n" + << "Check if your user configuration file is valid.\n" + << " Exception message:" + << pMsg; + XERCES_CPP_NAMESPACE_QUALIFIER XMLString::release(&pMsg); + PyErr_SetString(PyExc_RuntimeError, "Transcoding exception in Xerces-c: "); + return 0; + } catch (...) { PyErr_SetString(PyExc_Exception, "Unknown C++ exception raised in activateWorkbench"); return 0;