• snekmuffin@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      Tbf python guidelines encourage it over if/else in cases like this. “Easier to ask for forgiveness than for permission” or something along the lines

      • bjornsno@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        Day 598 of asking for a way to tell which functions throw exceptions in Python so I can know when to wrap in try catch. Seems to me that every other language has this, but when I’ve asked for at least a linter that can tell me I’m calling a function that throws, the general answer has been “why would you want that?”

        How am I supposed to ask for forgiveness if it’s impossible to know that I’m doing something risky in the first place?

        • ScreaminOctopus@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 months ago

          Yeah, for this reason I would pretty much never encourage exceptions in Python over some other form of error handling. It’s so frustrating when called code throws some random exceptions that are completely undocumented. This is one of the few things Java got (sort of) right

        • sqw@lemmy.sdf.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 months ago

          cant practically anything throw an exception given the right (sometimes extremely remotely possible) circumstances?

    • wizardbeard@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      6 months ago

      Still hurts, but sometimes it’s the only option.

      If you’re trying to confirm things like account existence/deletion, there’s often no “account exists” function to return true or false. You just have to figure out the specific exception thrown and catch that specific one.

      The worst are libraries that don’t give specific exceptions, so you have to catch all exceptions then do extra work to tell what the specific situation is. Does the account not exist, or is the system unreachable?

      • prof@infosec.pub
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        Yeah, I had a similar case with some authentication middleware I used that was part of a library.

        It would always throw an exception when a user wasn’t authenticated instead of just giving me some flag I could check.

        Wouldn’t have done it that way, but it was okay for an API controller.