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

  • @sugar_in_your_tea
    link
    1
    edit-2
    8 months 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.