errorinfo constructor test
This commit is contained in:
parent
2d0f766a77
commit
39ff80d031
4 changed files with 16 additions and 5 deletions
|
@ -23,6 +23,16 @@ int main()
|
|||
logger->logEI(e.info());
|
||||
}
|
||||
|
||||
|
||||
// ErrorInfo constructor
|
||||
try {
|
||||
auto e = Error("generic error");
|
||||
throw DemoError(e.info());
|
||||
} catch (Error &e) {
|
||||
logger->logEI(e.info());
|
||||
}
|
||||
|
||||
|
||||
// For completeness sake, info through vomit levels.
|
||||
// But this is maybe a heavy format for those.
|
||||
logger->logEI(
|
||||
|
|
|
@ -284,7 +284,7 @@ void BinaryCacheStore::narFromPath(const StorePath & storePath, Sink & sink)
|
|||
try {
|
||||
getFile(info->url, *decompressor);
|
||||
} catch (NoSuchBinaryCacheFile & e) {
|
||||
throw SubstituteGone(e.what());
|
||||
throw SubstituteGone(e.info());
|
||||
}
|
||||
|
||||
decompressor->finish();
|
||||
|
|
|
@ -365,7 +365,7 @@ void RemoteStore::queryPathInfoUncached(const StorePath & path,
|
|||
} catch (Error & e) {
|
||||
// Ugly backwards compatibility hack.
|
||||
if (e.msg().find("is not valid") != std::string::npos)
|
||||
throw InvalidPath(e.what());
|
||||
throw InvalidPath(e.info());
|
||||
throw;
|
||||
}
|
||||
if (GET_PROTOCOL_MINOR(conn->daemonVersion) >= 17) {
|
||||
|
|
|
@ -83,6 +83,7 @@ class BaseError : public std::exception
|
|||
protected:
|
||||
string prefix_; // used for location traces etc.
|
||||
ErrorInfo err;
|
||||
|
||||
std::optional<string> what_;
|
||||
const string& calcWhat()
|
||||
{
|
||||
|
@ -107,18 +108,18 @@ public:
|
|||
.hint = hintfmt(args...)
|
||||
}
|
||||
, status(status)
|
||||
{ }
|
||||
{ }
|
||||
|
||||
template<typename... Args>
|
||||
BaseError(const Args & ... args)
|
||||
: err { .level = lvlError,
|
||||
.hint = hintfmt(args...)
|
||||
}
|
||||
{ }
|
||||
{ }
|
||||
|
||||
BaseError(ErrorInfo e)
|
||||
: err(e)
|
||||
{ }
|
||||
{ }
|
||||
|
||||
virtual const char* sname() const { return "BaseError"; }
|
||||
|
||||
|
|
Loading…
Reference in a new issue