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

Terry Reedy tjreedy at udel.edu
Mon Sep 23 20:27:25 CEST 2013


On 9/23/2013 12:23 PM, R. David Murray wrote:
> On Mon, 23 Sep 2013 17:22:45 +0200, Antoine Pitrou <solipsis at pitrou.net> wrote:
>> On Mon, 23 Sep 2013 18:51:04 +1000
>> Nick Coghlan <ncoghlan at gmail.com> wrote:
>>> On 23 September 2013 18:45, Antoine Pitrou <solipsis at pitrou.net> wrote:
>>>> Le Mon, 23 Sep 2013 18:17:51 +1000,
>>>> Nick Coghlan <ncoghlan at gmail.com> a écrit :
>>>>>
>>>>> Here's what I suggest changing that error to:
>>>>>
>>>>>>>> del x
>>>>> Unraisable exception suppressed when calling <bound method C.__del__
>>>>> of <__main__.C object at 0x7f98b8b61538>>
>>>>> Traceback (most recent call last):
>>>>>    File "<stdin>", line 3, in __del__
>>>>> RuntimeError: Going away now
>>>>
>>>> Why not simply "Exception automatically caught in <bound method
>>>> C.__del__> [...]" ?
>>>
>>> It only answers the "what" (i.e. the exception was automatically
>>> caught), without addressing the "why" (i.e. because there wasn't
>>> anything else useful the interpreter could do with it)
>>
>> Yes, but I agree with Greg that "unraisable" is wrong. After all, it
>> was raised, and it can even be caught by the programmer (inside
>> __del__).
>
> Would it work to say "Asynchronous exception suppressed..."?  It's
> not-entirely-precise,

As in the example above ('del x').

> but it's less imprecise than "unraisable".

How 'troublesome'? That is always accurate, as proven by this thread.

We really need an "Understanding Exceptions" HOWTO, and I expect we will 
get one. So I agree with Nick that something easily searched would be good.

-- 
Terry Jan Reedy




More information about the Python-Dev mailing list