• Aloso
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    1 year ago

    If all you do in the Err(e) => ... match arm is returning the error, then you absolutely should use the ? operator instead.

    If the match arm also converts the error type into another error type, implement the From trait for the conversion, then you can use ? as well.

    If you want to add more information to the error, you can use .map_err(...)?. Or, if you’re using the anyhow crate, .with_context(...)?.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      You can also do map_err, which is a bit cleaner while keeping the mapping obvious. If you really need to do some logic on error, extracting that to the calling function is often better.