This is also how errors-as-values work in Rust. Functions that may fail return Result<T, E> - putting an ? at the end of a failable function call returns T on success, otherwise it propagates E. It reduces
result, err := call()
if err != nil {
return err
}
to let result = call()?;
Completely unobtrusive, but makes failure awareness an obligation.