Skip to content

Commit 554be1b

Browse files
DynamicTableParameter: Return better error message when validation fails. (BlueQuartzSoftware#824)
Signed-off-by: Joey Kleingers <[email protected]>
1 parent f869943 commit 554be1b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/simplnx/Parameters/DynamicTableParameter.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "DynamicTableParameter.hpp"
22

33
#include "simplnx/Common/Any.hpp"
4+
#include "simplnx/Utilities/StringUtilities.hpp"
45

56
#include <fmt/core.h>
67
#include <nlohmann/json.hpp>
@@ -14,9 +15,13 @@ DynamicTableParameter::DynamicTableParameter(const std::string& name, const std:
1415
, m_DefaultValue(defaultValue)
1516
, m_TableInfo(tableInfo)
1617
{
17-
if(m_TableInfo.validate(m_DefaultValue).invalid())
18+
auto result = m_TableInfo.validate(m_DefaultValue);
19+
if(result.invalid())
1820
{
19-
throw std::runtime_error("DynamicTableParameter: The default value is invalid");
21+
std::vector<std::string_view> errMsgs;
22+
std::transform(result.errors().cbegin(), result.errors().cend(), std::back_inserter(errMsgs), [](const Error& err) { return err.message; });
23+
std::string errMsgsStr = StringUtilities::join(errMsgs, "\n\n");
24+
throw std::runtime_error(fmt::format("DynamicTableParameter: The default value is invalid:\n\n{}", errMsgsStr));
2025
}
2126
}
2227

0 commit comments

Comments
 (0)