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 --- sc/source/ui/vba/vbarange.cxx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'sc/source/ui/vba/vbarange.cxx') diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx index 2ad45a3716a8..9d2b78693fee 100644 --- a/sc/source/ui/vba/vbarange.cxx +++ b/sc/source/ui/vba/vbarange.cxx @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -61,6 +62,7 @@ #include #include #include +#include #include #include #include @@ -2981,7 +2983,9 @@ ScVbaRange::getHidden() } catch( const uno::Exception& e ) { - throw uno::RuntimeException( e.Message ); + css::uno::Any anyEx = cppu::getCaughtException(); + throw css::lang::WrappedTargetRuntimeException( e.Message, + nullptr, anyEx ); } return uno::makeAny( !bIsVisible ); } @@ -3008,7 +3012,9 @@ ScVbaRange::setHidden( const uno::Any& _hidden ) } catch( const uno::Exception& e ) { - throw uno::RuntimeException( e.Message ); + css::uno::Any anyEx = cppu::getCaughtException(); + throw css::lang::WrappedTargetRuntimeException( e.Message, + nullptr, anyEx ); } } -- cgit