[Python-ideas] with ... except

MRAB python at mrabarnett.plus.com
Fri Mar 8 17:23:11 CET 2013


On 08/03/2013 10:41, Mark Hackett wrote:
> On Friday 08 Mar 2013, Antoine Pitrou wrote:
>> Le Fri, 8 Mar 2013 11:24:02 +0100,
>>
>> Masklinn <masklinn at masklinn.net> a écrit :
>> > On 2013-03-08, at 11:13 , Antoine Pitrou wrote:
>> > > Hello,
>> > >
>> > > A common pattern for me is to write a with statement for resource
>> > > cleanup, but also handle specific errors after that. Right now,
>> > > this is a bit cumbersome:
>> > >
>> > >  try:
>> > >      with open("somefile", "rb)" as f:
>> > >          ...
>> > >  except FileNotFoundError:
>> > >      # do something else, perhaps actually create the file
>> > >
>> > > or:
>> > >
>> > >  try:
>> > >      with transaction.commit_on_success():
>> > >          ...
>> > >  except ObjectDoesNotExist:
>> > >      # do something else, perhaps clean up some internal cache
>> > >
>> > >
>> > > How about adding syntax sugar for the above, in the form of a
>> > > with ... except clause? It would nicely reduce spurious
>> > > indentation, as with the try / except / finally which, long ago(!),
>> > > helped reduce indentation and typing by removing the need to nest a
>> > > try / except inside a try / finally.
>> >
>> > Isn't it essentially the same suggestion as Alan Johnson's last week?
>> > http://mail.python.org/pipermail/python-ideas/2013-March/019730.html
>>
>> Hmm, I hadn't read that thread. "try with" looked sufficiently ugly
>> that I wasn't interested :-)
>>
>
> Ugh, someone is going to suggest we have "try ... without" now...
>
> And it's so angocentric. How come the calls are to repeat *English grammar*?
> German grammar would probably be a lot clearer for a compiler/interpreter.
>
German grammar? Surely you mean Dutch grammar! :-)

> Of course, that wouldn't be possible if we still had the 80-column limit...
> :-)




More information about the Python-ideas mailing list