Catch C++ exceptions by const reference

Fixes #2277
This commit is contained in:
Charles Milette 2018-05-19 19:18:26 -04:00
parent b9fd381eee
commit 72c0002b45
No known key found for this signature in database
GPG Key ID: 1A5AE81377AD973A
22 changed files with 36 additions and 38 deletions

View File

@ -160,7 +160,7 @@ void FolderInstanceProvider::saveGroupList()
{ {
FS::write(groupFileName, doc.toJson()); FS::write(groupFileName, doc.toJson());
} }
catch(FS::FileSystemException & e) catch (const FS::FileSystemException &e)
{ {
qCritical() << "Failed to write instance group file :" << e.cause(); qCritical() << "Failed to write instance group file :" << e.cause();
} }
@ -181,7 +181,7 @@ void FolderInstanceProvider::loadGroupList()
{ {
jsonData = FS::read(groupFileName); jsonData = FS::read(groupFileName);
} }
catch (FS::FileSystemException & e) catch (const FS::FileSystemException &e)
{ {
qCritical() << "Failed to read instance group file :" << e.cause(); qCritical() << "Failed to read instance group file :" << e.cause();
return; return;

View File

@ -188,7 +188,7 @@ void InstanceImportTask::processFlame()
Flame::loadManifest(pack, configPath); Flame::loadManifest(pack, configPath);
QFile::remove(configPath); QFile::remove(configPath);
} }
catch (JSONValidationError & e) catch (const JSONValidationError &e)
{ {
emitFailed(tr("Could not understand pack manifest:\n") + e.cause()); emitFailed(tr("Could not understand pack manifest:\n") + e.cause());
return; return;

View File

@ -123,7 +123,7 @@ T ensureIsType(const QJsonValue &value, const T default_ = T(), const QString &w
{ {
return requireIsType<T>(value, what); return requireIsType<T>(value, what);
} }
catch (JsonException &) catch (JsonException)
{ {
return default_; return default_;
} }

View File

@ -56,7 +56,7 @@ public: /* methods */
m_entity->parse(Json::requireObject(Json::requireDocument(data, fname), fname)); m_entity->parse(Json::requireObject(Json::requireDocument(data, fname), fname));
return true; return true;
} }
catch (Exception &e) catch (const Exception &e)
{ {
qWarning() << "Unable to parse response:" << e.cause(); qWarning() << "Unable to parse response:" << e.cause();
return false; return false;
@ -90,7 +90,7 @@ bool Meta::BaseEntity::loadLocalFile()
parse(Json::requireObject(Json::requireDocument(fname, fname), fname)); parse(Json::requireObject(Json::requireDocument(fname, fname), fname));
return true; return true;
} }
catch (Exception &e) catch (const Exception &e)
{ {
qDebug() << QString("Unable to parse file %1: %2").arg(fname, e.cause()); qDebug() << QString("Unable to parse file %1: %2").arg(fname, e.cause());
// just make sure it's gone and we never consider it again. // just make sure it's gone and we never consider it again.

View File

@ -323,7 +323,7 @@ bool Component::customize()
m_metaVersion.reset(); m_metaVersion.reset();
emit dataChanged(); emit dataChanged();
} }
catch (Exception &error) catch (const Exception &error)
{ {
qWarning() << "Version could not be loaded:" << error.cause(); qWarning() << "Version could not be loaded:" << error.cause();
} }

View File

@ -195,7 +195,7 @@ static bool loadComponentList(ComponentList * parent, const QString & filename,
container.append(componentFromJsonV1(parent, componentJsonPattern, obj)); container.append(componentFromJsonV1(parent, componentJsonPattern, obj));
} }
} }
catch (JSONValidationError &err) catch (const JSONValidationError &err)
{ {
qCritical() << "Couldn't parse" << componentsFile.fileName() << ": bad file format"; qCritical() << "Couldn't parse" << componentsFile.fileName() << ": bad file format";
container.clear(); container.clear();
@ -1150,7 +1150,7 @@ std::shared_ptr<LaunchProfile> ComponentList::getProfile() const
} }
d->m_profile = profile; d->m_profile = profile;
} }
catch (Exception & error) catch (const Exception &error)
{ {
qWarning() << "Couldn't apply profile patches because: " << error.cause(); qWarning() << "Couldn't apply profile patches because: " << error.cause();
} }

View File

@ -57,7 +57,7 @@ bool readOverrideOrders(QString path, PatchOrder &order)
order.append(Json::requireString(item)); order.append(Json::requireString(item));
} }
} }
catch (JSONValidationError &err) catch (const JSONValidationError &err)
{ {
qCritical() << "Couldn't parse" << orderFile.fileName() << ": bad file format"; qCritical() << "Couldn't parse" << orderFile.fileName() << ": bad file format";
qWarning() << "Ignoring overriden order"; qWarning() << "Ignoring overriden order";
@ -82,7 +82,7 @@ static VersionFilePtr guardedParseJson(const QJsonDocument & doc,const QString &
{ {
return OneSixVersionFormat::versionFileFromJson(doc, filepath, requireOrder); return OneSixVersionFormat::versionFileFromJson(doc, filepath, requireOrder);
} }
catch (Exception & e) catch (const Exception &e)
{ {
return createErrorVersionFile(fileId, filepath, e.cause()); return createErrorVersionFile(fileId, filepath, e.cause());
} }

View File

@ -263,13 +263,13 @@ static QString read_string (nbt::value& parent, const char * name, const QString
auto & tag_str = namedValue.as<nbt::tag_string>(); auto & tag_str = namedValue.as<nbt::tag_string>();
return QString::fromStdString(tag_str.get()); return QString::fromStdString(tag_str.get());
} }
catch(std::out_of_range e) catch (const std::out_of_range &e)
{ {
// fallback for old world formats // fallback for old world formats
qWarning() << "String NBT tag" << name << "could not be found. Defaulting to" << fallback; qWarning() << "String NBT tag" << name << "could not be found. Defaulting to" << fallback;
return fallback; return fallback;
} }
catch(std::bad_cast e) catch (const std::bad_cast &e)
{ {
// type mismatch // type mismatch
qWarning() << "NBT tag" << name << "could not be converted to string. Defaulting to" << fallback; qWarning() << "NBT tag" << name << "could not be converted to string. Defaulting to" << fallback;
@ -289,13 +289,13 @@ static int64_t read_long (nbt::value& parent, const char * name, const int64_t &
auto & tag_str = namedValue.as<nbt::tag_long>(); auto & tag_str = namedValue.as<nbt::tag_long>();
return tag_str.get(); return tag_str.get();
} }
catch(std::out_of_range e) catch (const std::out_of_range &e)
{ {
// fallback for old world formats // fallback for old world formats
qWarning() << "Long NBT tag" << name << "could not be found. Defaulting to" << fallback; qWarning() << "Long NBT tag" << name << "could not be found. Defaulting to" << fallback;
return fallback; return fallback;
} }
catch(std::bad_cast e) catch (const std::bad_cast &e)
{ {
// type mismatch // type mismatch
qWarning() << "NBT tag" << name << "could not be converted to long. Defaulting to" << fallback; qWarning() << "NBT tag" << name << "could not be converted to long. Defaulting to" << fallback;
@ -338,7 +338,7 @@ void World::loadFromLevelDat(QByteArray data)
qDebug() << "Last Played:" << m_lastPlayed.toString(); qDebug() << "Last Played:" << m_lastPlayed.toString();
qDebug() << "Seed:" << m_randomSeed; qDebug() << "Seed:" << m_randomSeed;
} }
catch (nbt::io::input_error e) catch (const nbt::io::input_error &e)
{ {
qWarning() << "Unable to load" << m_folderName << ":" << e.what(); qWarning() << "Unable to load" << m_folderName << ":" << e.what();
is_valid = false; is_valid = false;

View File

@ -345,7 +345,7 @@ void ForgeXzDownload::decompressAndInstall()
// NOTE: this takes ownership of both FILE pointers. That's why we duplicate them above. // NOTE: this takes ownership of both FILE pointers. That's why we duplicate them above.
unpack_200(file_in, file_out); unpack_200(file_in, file_out);
} }
catch (std::runtime_error &err) catch (const std::runtime_error &err)
{ {
m_status = Job_Failed; m_status = Job_Failed;
qCritical() << "Error unpacking " << pack200_file.fileName() << " : " << err.what(); qCritical() << "Error unpacking " << pack200_file.fileName() << " : " << err.what();

View File

@ -95,7 +95,7 @@ void Flame::FileResolvingTask::netJobFinished()
} }
out.resolved = true; out.resolved = true;
} }
catch(JSONValidationError & e) catch (const JSONValidationError &e)
{ {
auto & out = m_toProcess.files[index]; auto & out = m_toProcess.files[index];
qCritical() << "Resolving of" << out.projectId << out.fileId << "failed because of a parsing error:"; qCritical() << "Resolving of" << out.projectId << out.fileId << "failed because of a parsing error:";

View File

@ -266,7 +266,7 @@ void HttpMetaCache::SaveNow()
{ {
FS::write(m_index_file, doc.toJson()); FS::write(m_index_file, doc.toJson());
} }
catch (Exception & e) catch (const Exception &e)
{ {
qWarning() << e.what(); qWarning() << e.what();
} }

View File

@ -90,7 +90,7 @@ bool INIFile::saveFile(QString fileName)
{ {
FS::write(fileName, outArray); FS::write(fileName, outArray);
} }
catch (Exception & e) catch (const Exception &e)
{ {
qCritical() << e.what(); qCritical() << e.what();
return false; return false;

View File

@ -225,7 +225,7 @@ void TranslationsModel::loadLocalIndex()
{ {
data = FS::read(d->m_dir.absoluteFilePath("index")); data = FS::read(d->m_dir.absoluteFilePath("index"));
} }
catch (Exception &e) catch (const Exception &e)
{ {
qCritical() << "Translations Download Failed: index file not readable"; qCritical() << "Translations Download Failed: index file not readable";
return; return;

View File

@ -174,7 +174,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
{ {
args = parser.parse(arguments()); args = parser.parse(arguments());
} }
catch (ParsingError e) catch (const ParsingError &e)
{ {
std::cerr << "CommandLineError: " << e.what() << std::endl; std::cerr << "CommandLineError: " << e.what() << std::endl;
std::cerr << "Try '%1 -h' to get help on MultiMC's command line parameters." std::cerr << "Try '%1 -h' to get help on MultiMC's command line parameters."

View File

@ -331,7 +331,7 @@ void UpdateController::installUpdates()
break; break;
} }
} }
catch(Exception e) catch (const Exception &e)
{ {
qWarning() << "Couldn't read the" << liveCheckFile << "file!"; qWarning() << "Couldn't read the" << liveCheckFile << "file!";
startFailed = true; startFailed = true;

View File

@ -479,7 +479,7 @@ void ExportInstanceDialog::savePackIgnore()
{ {
FS::write(filename, data); FS::write(filename, data);
} }
catch (Exception & e) catch (const Exception &e)
{ {
qWarning() << e.cause(); qWarning() << e.cause();
} }

View File

@ -135,7 +135,7 @@ QString reprocessCommits(QByteArray json)
result += QObject::tr("<p>You can <a href=\"%1\">look at the changes on github</a>.</p>").arg(diff_url); result += QObject::tr("<p>You can <a href=\"%1\">look at the changes on github</a>.</p>").arg(diff_url);
return result; return result;
} }
catch (JSONValidationError & e) catch (const JSONValidationError &e)
{ {
qWarning() << "Got an unparseable commit log from github:" << e.what(); qWarning() << "Got an unparseable commit log from github:" << e.what();
qDebug() << json; qDebug() << json;

View File

@ -109,7 +109,7 @@ static std::unique_ptr <nbt::tag_compound> parseServersDat(const QString& filena
return std::move(pair.second); return std::move(pair.second);
} }
catch(...) catch (...)
{ {
return nullptr; return nullptr;
} }
@ -125,7 +125,7 @@ static bool serializeServerDat(const QString& filename, nbt::tag_compound * leve
FS::write(filename, val); FS::write(filename, val);
return true; return true;
} }
catch(...) catch (...)
{ {
return false; return false;
} }

View File

@ -200,7 +200,7 @@ bool VersionPage::reloadComponentList()
m_profile->reload(Net::Mode::Online); m_profile->reload(Net::Mode::Online);
return true; return true;
} }
catch (Exception &e) catch (const Exception &e)
{ {
QMessageBox::critical(this, tr("Error"), e.cause()); QMessageBox::critical(this, tr("Error"), e.cause());
return false; return false;
@ -269,7 +269,7 @@ void VersionPage::on_moveUpBtn_clicked()
{ {
m_profile->move(currentRow(), ComponentList::MoveUp); m_profile->move(currentRow(), ComponentList::MoveUp);
} }
catch (Exception &e) catch (const Exception &e)
{ {
QMessageBox::critical(this, tr("Error"), e.cause()); QMessageBox::critical(this, tr("Error"), e.cause());
} }
@ -282,7 +282,7 @@ void VersionPage::on_moveDownBtn_clicked()
{ {
m_profile->move(currentRow(), ComponentList::MoveDown); m_profile->move(currentRow(), ComponentList::MoveDown);
} }
catch (Exception &e) catch (const Exception &e)
{ {
QMessageBox::critical(this, tr("Error"), e.cause()); QMessageBox::critical(this, tr("Error"), e.cause());
} }

View File

@ -66,7 +66,7 @@ static bool readThemeJson(const QString &path, QPalette &palette, double &fadeAm
fadeAmount = Json::ensureDouble(colorsRoot, "fadeAmount", 0.5, "fade amount"); fadeAmount = Json::ensureDouble(colorsRoot, "fadeAmount", 0.5, "fade amount");
} }
catch(Exception e) catch (const Exception &e)
{ {
qWarning() << "Couldn't load theme json: " << e.cause(); qWarning() << "Couldn't load theme json: " << e.cause();
return false; return false;
@ -117,7 +117,7 @@ static bool writeThemeJson(const QString &path, const QPalette &palette, double
Json::write(rootObj, path); Json::write(rootObj, path);
return true; return true;
} }
catch (Exception e) catch (const Exception &e)
{ {
qWarning() << "Failed to write theme json to" << path; qWarning() << "Failed to write theme json to" << path;
return false; return false;
@ -171,7 +171,7 @@ CustomTheme::CustomTheme(ITheme* baseTheme, QString folder)
// TODO: validate css? // TODO: validate css?
m_styleSheet = QString::fromUtf8(FS::read(cssFilePath)); m_styleSheet = QString::fromUtf8(FS::read(cssFilePath));
} }
catch(Exception e) catch (const Exception &e)
{ {
qWarning() << "Couldn't load css:" << e.cause() << "from" << cssFilePath; qWarning() << "Couldn't load css:" << e.cause() << "from" << cssFilePath;
m_styleSheet = baseTheme->appStyleSheet(); m_styleSheet = baseTheme->appStyleSheet();
@ -185,7 +185,7 @@ CustomTheme::CustomTheme(ITheme* baseTheme, QString folder)
{ {
FS::write(cssFilePath, m_styleSheet.toUtf8()); FS::write(cssFilePath, m_styleSheet.toUtf8());
} }
catch(Exception e) catch (const Exception &e)
{ {
qWarning() << "Couldn't write css:" << e.cause() << "to" << cssFilePath; qWarning() << "Couldn't write css:" << e.cause() << "to" << cssFilePath;
} }

View File

@ -70,9 +70,7 @@ QString GetMinecraftJarVersion(QString jarName)
} }
} }
} }
catch (java::classfile_exception &) catch (java::classfile_exception) { }
{
}
// clean up // clean up
delete[] classfile; delete[] classfile;

View File

@ -32,7 +32,7 @@ int main(int argc, char **argv)
{ {
unpack_200(input, output); unpack_200(input, output);
} }
catch (std::runtime_error &e) catch (const std::runtime_error &e)
{ {
std::cerr << "Bad things happened: " << e.what() << std::endl; std::cerr << "Bad things happened: " << e.what() << std::endl;
fclose(input); fclose(input);