[Python-Dev] PEP 463: Exception-catching expressions

Brett Cannon brett at python.org
Sat Feb 22 17:30:42 CET 2014


On Fri, Feb 21, 2014 at 8:41 PM, Greg Ewing <greg.ewing at canterbury.ac.nz>wrote:

> Ethan Furman wrote:
>
>> On 02/21/2014 03:29 PM, Greg Ewing wrote:
>>
>>      value = lst[2] except "No value" if IndexError
>>>
>>
>> It does read nicely, and is fine for the single, non-nested, case (which
>> is probably the vast majority), but how would it handle nested exceptions?
>>
>
> Hmmm, probably not very well, unless we define
>
>    a except b if E1 except c if E2
>
> to mean
>
>    a except (b except c if E2) if E1
>
> If E1 == E2, that could perhaps be abbreviated to
>
>    a except b except c if E
>
> Or we could just decide that the nested case is going
> to be so rare it's not worth worrying about.


+1 on not caring. Keep the expression for simple, obvious cases of a single
exception type and fall back to the statement for fancier use (just like
listcomps). The focus should be ease of expressiveness for a common
pattern, not trying to convert tons of try/except statements into an
expression just because we can.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140222/5c684713/attachment.html>


More information about the Python-Dev mailing list