[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