From deba5b4d4740566c045c604c4894506ee2048745 Mon Sep 17 00:00:00 2001 From: Andrei Kortunov Date: Mon, 31 Jul 2023 15:58:39 +0400 Subject: [PATCH] Catch unhandled exceptions --- apps/openmw/mwinput/bindingsmanager.cpp | 10 +++++++++- apps/openmw/mwlua/worker.cpp | 10 +++++++++- apps/openmw/mwrender/pathgrid.cpp | 10 +++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwinput/bindingsmanager.cpp b/apps/openmw/mwinput/bindingsmanager.cpp index 488c3c7c32..29e66f7905 100644 --- a/apps/openmw/mwinput/bindingsmanager.cpp +++ b/apps/openmw/mwinput/bindingsmanager.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -193,7 +194,14 @@ namespace MWInput BindingsManager::~BindingsManager() { - mInputBinder->save(Files::pathToUnicodeString(mUserFile)); + try + { + mInputBinder->save(Files::pathToUnicodeString(mUserFile)); + } + catch (std::exception& e) + { + Log(Debug::Error) << "Failed to save input bindings: " << e.what(); + } } void BindingsManager::update(float dt) diff --git a/apps/openmw/mwlua/worker.cpp b/apps/openmw/mwlua/worker.cpp index 66fbf0d55f..e8b06cf210 100644 --- a/apps/openmw/mwlua/worker.cpp +++ b/apps/openmw/mwlua/worker.cpp @@ -4,6 +4,7 @@ #include +#include #include #include @@ -82,7 +83,14 @@ namespace MWLua if (mJoinRequest) break; - update(); + try + { + update(); + } + catch (std::exception& e) + { + Log(Debug::Error) << "Failed to update LuaManager: " << e.what(); + } mUpdateRequest = false; lk.unlock(); diff --git a/apps/openmw/mwrender/pathgrid.cpp b/apps/openmw/mwrender/pathgrid.cpp index 7e4d85bcce..6bdee2bb06 100644 --- a/apps/openmw/mwrender/pathgrid.cpp +++ b/apps/openmw/mwrender/pathgrid.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -36,7 +37,14 @@ namespace MWRender { if (mPathgridEnabled) { - togglePathgrid(); + try + { + togglePathgrid(); + } + catch (std::exception& e) + { + Log(Debug::Error) << "Failed to destroy pathgrid: " << e.what(); + } } }