throwOut<RT extends Object, ET extends Exception, BET extends Exception> static method
RT...return type
ET...exception type
BET...base exception type
exception を throw out させる syntax sugar.
monitorOnError は log が null の時は追加されない.
Implementation
static Danger<RT, ET> throwOut<
RT extends Object
,ET extends Exception
,BET extends Exception
>(
Danger<RT,BET> danger,
Error error,
[
Log? log,
Map<String, dynamic> monitorOnError = const {},
]
) {
switch (danger) {
case Success():
return Success(danger.wrapped, log);
case Failure(asException: final exception):
switch (exception) {
case ET():
return Failure(exception, log);
case _:
if (log != null) log.monitor(monitorOnError);
Result.panic(error, log);
}
}
}