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, '.'); auto ss = tokenizeString(versionStr, '.');
if (ss.size() > 4) 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; int i = 0;
std::vector<unsigned long*> v = { &_major, &_minor, &_patch, &_build }; std::vector<unsigned long*> v = { &_major, &_minor, &_patch, &_build };
@ -1533,7 +1539,11 @@ Version::Version(const generic_string& versionStr)
{ {
if (!isNumber(s)) 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); *(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>(); valStr = i.at("id").get<std::string>();
pi->_id = wmc.char2wchar(valStr.c_str(), CP_ACP); pi->_id = wmc.char2wchar(valStr.c_str(), CP_ACP);
valStr = i.at("version").get<std::string>(); try {
generic_string newValStr(valStr.begin(), valStr.end()); valStr = i.at("version").get<std::string>();
pi->_version = Version(newValStr); generic_string newValStr(valStr.begin(), valStr.end());
pi->_version = Version(newValStr);
if (i.contains("npp-compatible-versions")) if (i.contains("npp-compatible-versions"))
{ {
json jNppCompatibleVer = i["npp-compatible-versions"]; json jNppCompatibleVer = i["npp-compatible-versions"];
string versionsStr = jNppCompatibleVer.get<std::string>(); string versionsStr = jNppCompatibleVer.get<std::string>();
generic_string nppCompatibleVersionStr(versionsStr.begin(), versionsStr.end()); generic_string nppCompatibleVersionStr(versionsStr.begin(), versionsStr.end());
pi->_nppCompatibleVersions = getIntervalVersions(nppCompatibleVersionStr); 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);
}
} }
catch (const wstring& s)
if (i.contains("old-versions-compatibility"))
{ {
json jOldVerCompatibility = i["old-versions-compatibility"]; wstring msg = pi->_displayName;
msg += L": ";
string versionsStr = jOldVerCompatibility.get<std::string>(); throw msg + s;
generic_string oldVerCompatibilityStr(versionsStr.begin(), versionsStr.end());
pi->_oldVersionCompatibility = getTwoIntervalVersions(oldVerCompatibilityStr);
} }
valStr = i.at("repository").get<std::string>(); valStr = i.at("repository").get<std::string>();
pi->_repository = wmc.char2wchar(valStr.c_str(), CP_ACP); pi->_repository = wmc.char2wchar(valStr.c_str(), CP_ACP);