diff options
Diffstat (limited to 'vcl/source/app/scheduler.cxx')
-rw-r--r-- | vcl/source/app/scheduler.cxx | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/vcl/source/app/scheduler.cxx b/vcl/source/app/scheduler.cxx index 2ef3c87d83f8..b53a58ecf555 100644 --- a/vcl/source/app/scheduler.cxx +++ b/vcl/source/app/scheduler.cxx @@ -20,7 +20,14 @@ #include <sal/config.h> #include <cassert> - +#include <cstdlib> +#include <exception> +#include <typeinfo> + +#include <com/sun/star/uno/Exception.hpp> +#include <cppuhelper/exc_hlp.hxx> +#include <sal/log.hxx> +#include <sal/types.h> #include <svdata.hxx> #include <tools/time.hxx> #include <unotools/configmgr.hxx> @@ -439,11 +446,21 @@ next_entry: { pTask->Invoke(); } + catch (css::uno::Exception& e) + { + auto const e2 = cppu::getCaughtException(); + SAL_WARN("vcl.schedule", "Uncaught " << e2.getValueTypeName() << " " << e.Message); + std::abort(); + } + catch (std::exception& e) + { + SAL_WARN("vcl.schedule", "Uncaught " << typeid(e).name() << " " << e.what()); + std::abort(); + } catch (...) { - SAL_WARN( "vcl.schedule", - "Uncaught exception during Task::Invoke()!" ); - abort(); + SAL_WARN("vcl.schedule", "Uncaught exception during Task::Invoke()!"); + std::abort(); } Lock( nLockCount ); pMostUrgent->mbInScheduler = false; |