• @BB_C
    link
    03 months ago

    From my experience, when people say “don’t unwrap in production code” they really mean “don’t call panic! in production code.” And that’s a bad take.

    What should be a non-absolutest mantra can be bad if applied absolutely. Yes.

    Annotating unreachable branches with a panic is the right thing to do; mucking up your interfaces to propagate errors that can’t actually happen is the wrong thing to do.

    What should be a non-absolutest mantra can be bad if applied absolutely.

    • @[email protected]
      link
      fedilink
      English
      13 months ago

      You talk about “non-absolutist,” but this thread got started because the parent comment said “literally never.”

      I am literally making the point that the absolutist take is bad, and that there are good reasons to call unwrap in prod code.

      smdh

      • @BB_C
        link
        -13 months ago

        Don’t get angry with me my friend. We are more in agreement than not re panics (not .unwrap(), another comment coming).

        Maybe I’m wrong, but I understood ‘literally’ in ‘literally never’ in the way young people use it, which doesn’t really mean ‘literally’, and is just used to convey exaggeration.

        • @[email protected]
          link
          fedilink
          23 months ago

          No, I actually meant it as in the traditional meaning of literally. As in

          [lints.clippy]
          unwrap_used = "warn"
          expect_used = "warn"
          

          along with a pre-commit hook that does

          cargo clippy -D warnings

          (deny warnings).

          There are always better ways to write an unwrap, usually via pattern matching and handling the error cases properly, at the very least logging them.