diff --git a/lib/config/configitem.cpp b/lib/config/configitem.cpp index 6de092d48..ad5ae174c 100644 --- a/lib/config/configitem.cpp +++ b/lib/config/configitem.cpp @@ -268,7 +268,14 @@ void ConfigItem::ValidateItem(void) return; } - ctype->ValidateItem(GetSelf()); + try { + ctype->ValidateItem(GetSelf()); + } catch (const ConfigError& ex) { + const DebugInfo *di = boost::get_error_info(ex); + ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo()); + } catch (const std::exception& ex) { + ConfigCompilerContext::GetInstance()->AddMessage(true, DiagnosticInformation(ex)); + } m_Validated = true; }