This is a discussion on Python’s forums about adding something akin to a throws keyword in python.

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

      I’m not too familiar with C# (last used it like a decade ago), but I think the rules here would be pretty simple:

      • x? - if x is None or an Error, return from the function early, otherwise use the value and continue
      • x?.y - same as above, but with an attribute of x
      • x ?? y - instead of returning as in the first, use y as the default value

      And maybe add an option to convert exceptions from a function to an Error value (maybe some_func?() to convert to error values? IDK, I haven’t thought through that part as much).

      Hopefully that’s simple enough to be useful.

      If I were proposing this, I’d limit it to optional chaining since that’s far more annoying to me currently.