diff --git a/PowerEditor/src/MISC/Common/Common.cpp b/PowerEditor/src/MISC/Common/Common.cpp index b4291b0d1..8559a32b3 100644 --- a/PowerEditor/src/MISC/Common/Common.cpp +++ b/PowerEditor/src/MISC/Common/Common.cpp @@ -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 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); diff --git a/PowerEditor/src/WinControls/PluginsAdmin/pluginsAdmin.cpp b/PowerEditor/src/WinControls/PluginsAdmin/pluginsAdmin.cpp index a9abe7b4a..778c05ceb 100644 --- a/PowerEditor/src/WinControls/PluginsAdmin/pluginsAdmin.cpp +++ b/PowerEditor/src/WinControls/PluginsAdmin/pluginsAdmin.cpp @@ -610,28 +610,35 @@ bool loadFromJson(std::vector& pl, const json& j) valStr = i.at("id").get(); pi->_id = wmc.char2wchar(valStr.c_str(), CP_ACP); - valStr = i.at("version").get(); - generic_string newValStr(valStr.begin(), valStr.end()); - pi->_version = Version(newValStr); + try { + valStr = i.at("version").get(); + 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(); - generic_string nppCompatibleVersionStr(versionsStr.begin(), versionsStr.end()); - pi->_nppCompatibleVersions = getIntervalVersions(nppCompatibleVersionStr); + string versionsStr = jNppCompatibleVer.get(); + 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(); + 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(); - 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(); pi->_repository = wmc.char2wchar(valStr.c_str(), CP_ACP);