diff --git a/BaseLib/ConfigTree.cpp b/BaseLib/ConfigTree.cpp index ac32d11f2a153bb4ccaa1f1562f9a54195d7becd..e74dda59ff592b51d280d040414caadcc303b5f0 100644 --- a/BaseLib/ConfigTree.cpp +++ b/BaseLib/ConfigTree.cpp @@ -65,7 +65,8 @@ ConfigTree(ConfigTree && other) ConfigTree::~ConfigTree() { - checkAndInvalidate(); + if (!std::uncaught_exception()) + checkAndInvalidate(); } ConfigTree& @@ -194,6 +195,9 @@ void ConfigTree::ignoreConfigParameterAll(const std::string ¶m) const void ConfigTree::error(const std::string& message) const { _onerror(_filename, _path, message); + OGS_FATAL( + "ConfigTree: The error handler does not break out of the normal " + "control flow."); } void ConfigTree::warning(const std::string& message) const