+ fixes #0001614: Provide proper Error Message for corrupt xml files

This commit is contained in:
wmayer
2014-07-16 19:12:19 +02:00
parent bbaf4d9073
commit 46f737b430

View File

@@ -29,6 +29,8 @@
# include <QPrinter>
#endif
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/TranscodingException.hpp>
#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;