Don't catch exceptions by value

(cherry picked from commit 893be6f5e3)
This commit is contained in:
Eelco Dolstra 2019-09-22 21:29:33 +02:00
parent 7f9a0033c7
commit bd79c1f6f6
5 changed files with 7 additions and 7 deletions

View file

@ -111,9 +111,9 @@ static void parseJSON(EvalState & state, const char * & s, Value & v)
mkFloat(v, stod(tmp_number)); mkFloat(v, stod(tmp_number));
else else
mkInt(v, stol(tmp_number)); mkInt(v, stol(tmp_number));
} catch (std::invalid_argument e) { } catch (std::invalid_argument & e) {
throw JSONParseError("invalid JSON number"); throw JSONParseError("invalid JSON number");
} catch (std::out_of_range e) { } catch (std::out_of_range & e) {
throw JSONParseError("out-of-range JSON number"); throw JSONParseError("out-of-range JSON number");
} }
} }

View file

@ -38,7 +38,7 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
try { try {
runProgram("git", true, { "-C", uri, "diff-index", "--quiet", "HEAD", "--" }); runProgram("git", true, { "-C", uri, "diff-index", "--quiet", "HEAD", "--" });
} catch (ExecError e) { } catch (ExecError & e) {
if (!WIFEXITED(e.status) || WEXITSTATUS(e.status) != 1) throw; if (!WIFEXITED(e.status) || WEXITSTATUS(e.status) != 1) throw;
clean = false; clean = false;
} }

View file

@ -879,8 +879,8 @@ void LocalStore::querySubstitutablePathInfos(const PathSet & paths,
info->references, info->references,
narInfo ? narInfo->fileSize : 0, narInfo ? narInfo->fileSize : 0,
info->narSize}; info->narSize};
} catch (InvalidPath) { } catch (InvalidPath &) {
} catch (SubstituterDisabled) { } catch (SubstituterDisabled &) {
} catch (Error & e) { } catch (Error & e) {
if (settings.tryFallback) if (settings.tryFallback)
printError(e.what()); printError(e.what());

View file

@ -280,7 +280,7 @@ static void _main(int argc, char * * argv)
auto absolute = i; auto absolute = i;
try { try {
absolute = canonPath(absPath(i), true); absolute = canonPath(absPath(i), true);
} catch (Error e) {}; } catch (Error & e) {};
if (store->isStorePath(absolute) && std::regex_match(absolute, std::regex(".*\\.drv(!.*)?"))) if (store->isStorePath(absolute) && std::regex_match(absolute, std::regex(".*\\.drv(!.*)?")))
drvs.push_back(DrvInfo(*state, store, absolute)); drvs.push_back(DrvInfo(*state, store, absolute));
else else

View file

@ -55,7 +55,7 @@ struct CmdEdit : InstallableCommand
int lineno; int lineno;
try { try {
lineno = std::stoi(std::string(pos, colon + 1)); lineno = std::stoi(std::string(pos, colon + 1));
} catch (std::invalid_argument e) { } catch (std::invalid_argument & e) {
throw Error("cannot parse line number '%s'", pos); throw Error("cannot parse line number '%s'", pos);
} }