In many cases, Option<T> is used instead because a value is either present or not present with no meaningful information to convey via an error. Propagating that upwards is also common, so people defined a try_opt! macro for that too, which was replaced with the ? operator too.