diff options
author | Pamplemousse <xav.maso@gmail.com> | 2021-06-29 14:28:43 -0700 |
---|---|---|
committer | Pamplemousse <xav.maso@gmail.com> | 2021-07-01 11:09:31 -0700 |
commit | 4a7a8b87cd0dd383f1059fe7903c4b001314f58d (patch) | |
tree | 3fc2a6ec3bc343f790803abcb1c5bb516d283dfe /src/libexpr | |
parent | decc14d4b7fbe1664ae609563003c883d4e426a8 (diff) |
Prefer to throw specific errors
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
Diffstat (limited to 'src/libexpr')
-rw-r--r-- | src/libexpr/attr-path.cc | 6 | ||||
-rw-r--r-- | src/libexpr/eval.cc | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/libexpr/attr-path.cc b/src/libexpr/attr-path.cc index 9dd557205..867eb13a5 100644 --- a/src/libexpr/attr-path.cc +++ b/src/libexpr/attr-path.cc @@ -19,7 +19,7 @@ static Strings parseAttrPath(std::string_view s) ++i; while (1) { if (i == s.end()) - throw Error("missing closing quote in selection path '%1%'", s); + throw ParseError("missing closing quote in selection path '%1%'", s); if (*i == '"') break; cur.push_back(*i++); } @@ -116,14 +116,14 @@ Pos findDerivationFilename(EvalState & state, Value & v, std::string what) auto colon = pos.rfind(':'); if (colon == std::string::npos) - throw Error("cannot parse meta.position attribute '%s'", pos); + throw ParseError("cannot parse meta.position attribute '%s'", pos); std::string filename(pos, 0, colon); unsigned int lineno; try { lineno = std::stoi(std::string(pos, colon + 1)); } catch (std::invalid_argument & e) { - throw Error("cannot parse line number '%s'", pos); + throw ParseError("cannot parse line number '%s'", pos); } Symbol file = state.symbols.create(filename); diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index ef9f8efca..657e4e4cf 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -908,7 +908,7 @@ void EvalState::evalFile(const Path & path_, Value & v, bool mustBeTrivial) // computation. if (mustBeTrivial && !(dynamic_cast<ExprAttrs *>(e))) - throw Error("file '%s' must be an attribute set", path); + throw EvalError("file '%s' must be an attribute set", path); eval(e, v); } catch (Error & e) { addErrorTrace(e, "while evaluating the file '%1%':", path2); |