guard<S> function

Result<S, Object> guard<S>(
  1. S func()
)

Executes the function in a protected context. func is called inside a try catch block. If the result does not catch, then return value func returned inside an Ok. If func throws, then the thrown value is returned inside an Err.

Implementation

@pragma("vm:prefer-inline")
Result<S, Object> guard<S>(S Function() func) {
  assert(S is! Result, "Use guardResult instead");
  try {
    return Ok(func());
  } catch (e) {
    return Err(e);
  }
}