On Mon, Jan 7, 2019 at 11:11 PM Oscar Benjamin
<oscar.j.benja...@gmail.com> wrote:
>
> On Mon, 7 Jan 2019 at 09:27, Chris Angelico <ros...@gmail.com> wrote:
> >
> > On Mon, Jan 7, 2019 at 7:11 PM Anders Hovmöller <bo...@killingar.net> wrote:
> > >
> > >
> > > > This proposal is basically about introducing goto to the language.
> > >
> > > A bit hyperbolic but I agree that it has the same problem as goto. But 
> > > the specific suggested solution is not something we should be restricted 
> > > so rigidly to in this discussion. One could for example see another 
> > > solution to the same problem:
> > >
> > > with supress_raise(TypeError, ValueError):
> > >    do_the_things()
> > >
> > > I have no idea how to actually implement this though and it's also a bad 
> > > idea but I think we should first find the best idea to solve the 
> > > underlying pain point then talk about rejecting or supporting that.
> > >
> >
> > You mean like this?
> >
> > https://docs.python.org/3/library/contextlib.html#contextlib.suppress
>
> That doesn't do what the OP requested. It suppresses errors from the
> outside but doesn't resume execution in the block so e.g.:
>
> a = b = None
> with suppress(ValueError):
>     a = float(str_a)
>     b = float(str_b)
>
> The OP wants the the b= line to execute even if the a= line raises an 
> exception.
>

True, but what the OP actually asked for is basically impossible. And
at least you can write:

with suppress(ValueError):
    a = float(str_a)
with suppress(ValueError):
    b = float(str_b)

which is a heap less noisy than the explicit try/except.

ChrisA
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to