On Wed, Sep 29, 2021 at 10:01:52PM -0300, Soni L. wrote:

> So uh, this is a hardly at all fleshed out idea, but one thing we really
> don't like about python is having to do stuff like this so as to not
> swallow exceptions:

Is that the Royal We or are you actually speaking on behalf of other 
people?


> def a_potentially_recursive_function(some, args):
>   """
>   Does stuff and things.
>   Raises ExceptionWeCareAbout under so and so conditions.
>   """
>   try: 
>       some.user_code()
>   except ExceptionWeCareAbout as exc: 
>       raise RuntimeError from exc
>   code_we_assume_is_safe()
>   if args.something and some_condition:
>     raise ExceptionWeCareAbout

I don't see an obvious recursive call there, although I suppose it could 
be buried in some.user_code().

It isn't clear to me why it matters that this could be recursive, or why 
you raise RuntimeError.

By the way, you may not need the "raise...from exc" syntax. The 
difference between:

    except NameError:
        raise RuntimeError

and 

    except NameError as exc:
        raise RuntimeError from exc

is *extremely* minimal. In a practical sense, the main difference is 
that the first traceback will say:

    NameError traceback
    During handling of the above exception, another exception occurred
    RuntimeError traceback

and the second will say:

    NameError traceback
    The above exception was the direct cause of the following exception
    RuntimeError traceback

So it might not matter that much to you.

Anyway, that's just a minor aside.


> It'd be nice if there was a way to... make this easier to deal with.


It isn't clear to me what part of the above isn't already easy to deal 
with. Maybe you need a more realistic, runnable, example that 
demonstrates why this is an actual problem?

And maybe the actual problem is not exception handling, but a 
sub-optimal design for your algorithm.

(More comments to follow.)


-- 
Steve
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/TGAARJQ3TZGM7GQVIMKD4TH3YUVLBAAL/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to