Don't catch exceptions by value
This commit is contained in:
parent
14d3f45009
commit
893be6f5e3
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ GitInfo exportGit(ref<Store> store, 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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -872,8 +872,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());
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -50,7 +50,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue