From 3a51daeace695ead38cfd82b3a0f1e6f25a32e0f Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 24 May 2018 15:47:30 +0200 Subject: Improve re-throwing of UNO exceptions (*) if we are already throwing a Wrapped*Exception, get the exception using cppu::getCaughtexception. (*) when catching and then immediately throwing UNO exceptions, use cppu::getCaughtException to prevent exception slicing (*) if we are going to catch an exception and then immediately throw a RuntimeException, rather throw a WrappedTargetRuntimeException and preserve the original exception information. Change-Id: Ia7a501a50ae0e6f4d05186333c8517fdcb17d558 Reviewed-on: https://gerrit.libreoffice.org/54692 Tested-by: Jenkins Reviewed-by: Noel Grandin --- xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'xmlscript') diff --git a/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx b/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx index d78e9a55579e..344591d566ae 100644 --- a/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx +++ b/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -539,9 +540,10 @@ void FormattedFieldElement::endElement() } catch (const util::MalformedNumberFormatException & exc) { - SAL_WARN( "xmlscript.xmldlg", "### util::MalformedNumberFormatException occurred!" ); + css::uno::Any anyEx = cppu::getCaughtException(); + SAL_WARN( "xmlscript.xmldlg", exc ); // rethrow - throw xml::sax::SAXException( exc.Message, Reference< XInterface >(), Any() ); + throw xml::sax::SAXException( exc.Message, Reference< XInterface >(), anyEx ); } } ctx.importBooleanProperty("TreatAsNumber", "treat-as-number" , _xAttributes ); -- cgit