• cbarrick@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    5 months ago

    Fair. But unwrap versus expect isn’t really the point. Sure one has a better error message printed to your backtrace. But IMO that’s not what I’m looking for when I’m looking at a backtrace. I don’t mind plain unwraps or assertions without messages.

    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.

    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.

    • BB_C@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      5 months ago

      that’s not what I’m looking for when I’m looking at a backtrace. I don’t mind plain unwraps or assertions without messages.

      You’re assuming the PoV of a developer in an at least partially controlled environment.

      Don’t underestimate the power of (preferably specific/unique) text. Text a user (who is more likely to be experiencing a partially broken environment) can put in a search engine after copying it or memorizing it. The backtrace itself at this point is maybe gone because the user didn’t care, or couldn’t copy it anyway.

    • BB_C@programming.dev
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      5 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.

      • cbarrick@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 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@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          5 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.