[Python-Dev] PEP 409 and the stdlib

Hrvoje Niksic hrvoje.niksic at avl.com
Fri Jun 21 10:42:47 CEST 2013


On 05/21/2013 10:36 AM, Serhiy Storchaka wrote:
> 21.05.13 10:17, Hrvoje Niksic написав(ла):
>> On 05/20/2013 05:15 PM, Ethan Furman wrote:
>>> 1)  Do nothing and be happy I use 'raise ... from None' in my own
>>> libraries
>>>
>>> 2)  Change the wording of 'During handling of the above exception,
>>> another exception occurred' (no ideas as to what at
>>> the moment)
>>
>> The word "occurred" misleads one to think that, during handling of the
>> real exception, an unrelated and unintended exception occurred.  This is
>> not the case when the "raise" keyword is used.  In that case, the
>> exception was intentionally *converted* from one type to another.  For
>> the "raise" case a wording like the following might work better:
>>
>>      The above exception was converted to the following exception:
>>      ...
>>
>> That makes it clear that the conversion was explicit and (hopefully)
>> intentional, and that the latter exception supersedes the former.
>
> How do you distinguish intentional and unintentional exceptions?

By the use of the "raise" keyword.  Given the code:

try:
     x = bla['foo']
except KeyError:
     raise BusinessError(...)

...explicit raise is a giveaway that the exception replacement was quite 
intentional.

Hrvoje



More information about the Python-Dev mailing list