Closed
Description
motivation:
Maybe<void> Foo() {
CHECK_OR_RETURN(...) << Error::ErrorType0() << "...";
CHECK_OR_RETURN(...) << Error::ErrorType2() << "...";
return Maybe<void>::Ok();
}
Maybe<void> Bar() {
const std::string local_var_bar;
JUST(Foo()); // sometimes we want to record `local_var_bar` to stackframe when Foo failed.
return Maybe<void>::Ok();
}
possible usages:
JUST(Foo(), "error: xxx");
JUST(Foo(), std::stringstream() << "error: xx");
JUST(TRY(Foo()),
CATCH([&](const cfg::ErrorType0& error0) -> std::string { return "error: error0 xxx" }),
CATCH([&](const cfg::ErrorType1& error1) -> std::string { return "error: error1 xxx" }))
Metadata
Metadata
Assignees
Labels
No labels