fix: Handle exceptions thrown by providers on loadSettings() (#1307)

This commit is contained in:
iTrooz
2023-09-12 12:00:00 +02:00
committed by GitHub
parent e65021c85e
commit 5e86f62a98

View File

@@ -69,11 +69,19 @@ namespace hex::plugin::builtin {
}
provider->setID(id);
provider->loadSettings(providerSettings.at("settings"));
if (!provider->open() || !provider->isAvailable() || !provider->isReadable()) {
providerWarnings[provider] = provider->getErrorMessage();
} else
EventManager::post<EventProviderOpened>(provider);
bool loaded = false;
try {
provider->loadSettings(providerSettings.at("settings"));
loaded = true;
} catch (const std::exception &e){
providerWarnings[provider] = e.what();
}
if (loaded) {
if (!provider->open() || !provider->isAvailable() || !provider->isReadable()) {
providerWarnings[provider] = provider->getErrorMessage();
} else
EventManager::post<EventProviderOpened>(provider);
}
}
std::string warningMsg;