From b6924ff74450daa819292baa27cbc7cf42ca6a9c Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Sun, 23 Mar 2025 13:25:34 -0500 Subject: [PATCH] Inspection: catch exceptions in destructor --- .../Inspection/Gui/ViewProviderInspection.cpp | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/Mod/Inspection/Gui/ViewProviderInspection.cpp b/src/Mod/Inspection/Gui/ViewProviderInspection.cpp index 0ef43ac35f..243a908335 100644 --- a/src/Mod/Inspection/Gui/ViewProviderInspection.cpp +++ b/src/Mod/Inspection/Gui/ViewProviderInspection.cpp @@ -111,13 +111,26 @@ ViewProviderInspection::ViewProviderInspection() ViewProviderInspection::~ViewProviderInspection() { - pcColorRoot->unref(); - pcCoords->unref(); - pcMatBinding->unref(); - pcColorMat->unref(); - deleteColorBar(); - pcLinkRoot->unref(); - pcPointStyle->unref(); + try { + pcColorRoot->unref(); + pcCoords->unref(); + pcMatBinding->unref(); + pcColorMat->unref(); + pcLinkRoot->unref(); + pcPointStyle->unref(); + deleteColorBar(); + } + catch (Base::Exception& e) { + Base::Console().DestructorError( + "ViewProviderInspection", + "ViewProviderInspection::deleteColorBar() threw an exception: %s\n", + e.what()); + } + catch (...) { + Base::Console().DestructorError( + "ViewProviderInspection", + "ViewProviderInspection destructor threw an unknown exception"); + } } void ViewProviderInspection::onChanged(const App::Property* prop)