On Tue, Jul 30, 2019 at 1:13 AM Paul Moore <p.f.mo...@gmail.com> wrote:

> On Tue, 30 Jul 2019 at 04:00, Ethan Furman <et...@stoneleaf.us> wrote:
> > If this "with...except" leads to more robust code then I think many
> would like to use it, but not if it's confusing as that would lead to less
> robust code.
>
> For me, "it's for robust code" is sufficient hint that I now remember
> what it does (much the same way that "it's for search loops" is the
> hint I need for for...else). And when I'm trying to write robust code,
> I *do* worry about exceptions in the with expression, and the fact
> that I can't easily catch them. So for me, this is definitely a real
> (albeit one I can usually ignore) problem.
>

I'm not sure I understand the desire to catch every possible exception
right where it occurs. I've never felt this need somehow. *Apart from
open()* can someone give me an example from real code where a context
manager is likely to raise an exception that can meaningfully be handled?

I've re-read Serhiy's original example, involving a context manager for
connecting to a socket and a for-loop for reading the data from the socket
and writing it to another one (all three operations that may fail), but I
find it unconvincing. For reference I'm copying it here again:

     with connect() as stream:  # connect() or __enter__() can fail.
         for data in stream:  # __next__() can fail
             write(data)  # write() can fail

This very much looks like toy networking code to me -- real networking code
is always written in a completely different way, using different
abstractions that raise different exceptions, and I don't think it would be
written in this style even if `with` and `for` had optional `except`
clauses. (Alternatively, you can write little wrappers that turn OSError
into different exceptions so you can use a single try/except/except/except
statement to handle them all.)

-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him/his **(why is my pronoun here?)*
<http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________
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/LPIW6CQGVCLV2WJC2ECLRMUALSW6ZTL2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to