Make Plugin Admin exception message more clear

This commit is contained in:
Don Ho 2022-05-25 18:52:57 +02:00
parent d6595ad836
commit ddbb75f0f7
2 changed files with 36 additions and 19 deletions

View File

@ -1525,7 +1525,13 @@ Version::Version(const generic_string& versionStr)
auto ss = tokenizeString(versionStr, '.');
if (ss.size() > 4)
throw std::wstring(TEXT("Version parts are more than 4. The string to parse is not a valid version format. Let's make it default value in catch block."));
{
std::wstring msg(L"\"");
msg += versionStr;
msg += L"\"";
msg += TEXT(": Version parts are more than 4. The string to parse is not a valid version format. Let's make it default value in catch block.");
throw msg;
}
int i = 0;
std::vector<unsigned long*> v = { &_major, &_minor, &_patch, &_build };
@ -1533,7 +1539,11 @@ Version::Version(const generic_string& versionStr)
{
if (!isNumber(s))
{
throw std::wstring(TEXT("One of version character is not number. The string to parse is not a valid version format. Let's make it default value in catch block."));
std::wstring msg(L"\"");
msg += versionStr;
msg += L"\"";
msg += TEXT(": One of version character is not number. The string to parse is not a valid version format. Let's make it default value in catch block.");
throw msg;
}
*(v[i]) = std::stoi(s);

View File

@ -610,28 +610,35 @@ bool loadFromJson(std::vector<PluginUpdateInfo*>& pl, const json& j)
valStr = i.at("id").get<std::string>();
pi->_id = wmc.char2wchar(valStr.c_str(), CP_ACP);
valStr = i.at("version").get<std::string>();
generic_string newValStr(valStr.begin(), valStr.end());
pi->_version = Version(newValStr);
try {
valStr = i.at("version").get<std::string>();
generic_string newValStr(valStr.begin(), valStr.end());
pi->_version = Version(newValStr);
if (i.contains("npp-compatible-versions"))
{
json jNppCompatibleVer = i["npp-compatible-versions"];
if (i.contains("npp-compatible-versions"))
{
json jNppCompatibleVer = i["npp-compatible-versions"];
string versionsStr = jNppCompatibleVer.get<std::string>();
generic_string nppCompatibleVersionStr(versionsStr.begin(), versionsStr.end());
pi->_nppCompatibleVersions = getIntervalVersions(nppCompatibleVersionStr);
string versionsStr = jNppCompatibleVer.get<std::string>();
generic_string nppCompatibleVersionStr(versionsStr.begin(), versionsStr.end());
pi->_nppCompatibleVersions = getIntervalVersions(nppCompatibleVersionStr);
}
if (i.contains("old-versions-compatibility"))
{
json jOldVerCompatibility = i["old-versions-compatibility"];
string versionsStr = jOldVerCompatibility.get<std::string>();
generic_string oldVerCompatibilityStr(versionsStr.begin(), versionsStr.end());
pi->_oldVersionCompatibility = getTwoIntervalVersions(oldVerCompatibilityStr);
}
}
if (i.contains("old-versions-compatibility"))
catch (const wstring& s)
{
json jOldVerCompatibility = i["old-versions-compatibility"];
string versionsStr = jOldVerCompatibility.get<std::string>();
generic_string oldVerCompatibilityStr(versionsStr.begin(), versionsStr.end());
pi->_oldVersionCompatibility = getTwoIntervalVersions(oldVerCompatibilityStr);
wstring msg = pi->_displayName;
msg += L": ";
throw msg + s;
}
valStr = i.at("repository").get<std::string>();
pi->_repository = wmc.char2wchar(valStr.c_str(), CP_ACP);