[Python-Dev] Revert #12085 fix for __del__ attribute error message

Ethan Furman ethan at stoneleaf.us
Mon Sep 23 06:06:40 CEST 2013


On 09/22/2013 08:24 PM, Nick Coghlan wrote:
>
> On 23 Sep 2013 06:38, "Terry Reedy" <tjreedy at udel.edu <mailto:tjreedy at udel.edu>> wrote:
>>
>> On 9/22/2013 2:41 PM, Guido van Rossum wrote:
>>>
>>> On Sun, Sep 22, 2013 at 10:35 AM, Terry Reedy <tjreedy at udel.edu <mailto:tjreedy at udel.edu>
>>> <mailto:tjreedy at udel.edu <mailto:tjreedy at udel.edu>>> wrote:
>>>
>>>     On 9/21/2013 10:30 PM, Guido van Rossum wrote:
>>>
>>>         Exceptions in __del__ point to bugs (sometimes in the stdlib) that
>>>         should be fixed, period. The only reason they do not result in
>>>         exceptions that are properly bubbled up and catchable is because
>>>         __del__
>>>         is called from a DECREF macro which has no return value.
>>>
>>>
>>>     That is clear enough. What fooled me is the word 'ignored', in both
>>>     the doc and message. How about 'skipped' (for technical reasons)?
>>>
>>>
>>> That's a good point, although I'm not sure 'skipped' is better.
>>
>>
>> Only slightly ;-). The problem with both words is that they try to say two things. What happened, and what Python did about it.
>>
>>
>>> Maybe use a more neutral verb like 'occurred'?
>>
>>
>> "Exception occurred in ..." is even better at say what happened.
>>
>> I think we should then add an explict statement as to what Python did, and hint at what the user should do, something like
>> "Although caught internally, it still indicates a problem."
>
> Brevity is still a virtue. The relevant C API function is called "PyErr_WriteUnraisable", so just starting the message
> as something like "Unraisable exception suppressed in..." might work.

I like that!  +1

--
~Ethan~


More information about the Python-Dev mailing list