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(); + } } }