From 118b7aa0cc945fae0803fdfcb65079ba0ebd8db0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 8 Jan 2022 13:48:01 +0100 Subject: [PATCH] Sketcher: improve exception handling * if determining the normal raises an exception then fall back to a default value * when handling a Base::Exception then call its ReportException() function to get as much information as possible --- src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp index 61be445d6a..2c24a81657 100644 --- a/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp @@ -171,8 +171,13 @@ Restart: auto curve = dynamic_cast(geom); Base::Vector3d normal; - if(!(curve && curve->normalAt(pointoncurve, normal))) { + try { + if(!(curve && curve->normalAt(pointoncurve, normal))) { normal = Base::Vector3d(1,0,0); + } + } + catch (const Base::CADKernelError&) { + normal = Base::Vector3d(1,0,0); } return normal; @@ -1177,6 +1182,7 @@ Restart: } catch (Base::Exception &e) { Base::Console().Error("Exception during draw: %s\n", e.what()); + e.ReportException(); } catch (...){ Base::Console().Error("Exception during draw: unknown\n"); }