[Tkinter-discuss] How to capture exceptions after the end of the program

Vasilis Vlachoudis Vasilis.Vlachoudis at cern.ch
Thu Jul 1 16:30:25 CEST 2010


Unfortunately I was not able to narrow down to a simple code. All my 
attempts failed and they worked ok. While in the big project is not 
behaving correctly.

The problem I see depends on the gc. If the gc deletes first the Tk_ 
root window then when it tries to delete the Font.__del__,  tcl fails. 
Which for me is a bit puzzling since there is a backlink of the root in 
the Font class.

However I saw that from python 2.6 the tkFont.Font.__del__ method has 
changed with respect to the 2.4 and there is a branch to catch the 
generic exception.
When I added this to the tkFont of the 2.4 it worked and absorbed all 
Exceptions.

Vasilis

On 06/25/10 22:39, Michael Lange wrote:
> Hi Vasilis,
>
> On Fri, 25 Jun 2010 12:20:30 +0200
> Vasilis Vlachoudis<Vasilis.Vlachoudis at cern.ch>  wrote:
>
>    
>> Hi all,
>>
>> I have a tkinter application that uses several fonts. However only
>> with python 2.4 when the application is closed then I get the
>> following exceptions (with 2.6 it works Ok)
>>
>> Exception exceptions.AttributeError: "'NoneType' object has no
>> attribute 'TclError'" in<bound method Font.__del__ of<tkFont.Font
>> instance at
>> 0x2ac0dd4c4908>>  ignored
>> Exception exceptions.AttributeError: "'NoneType' object has no
>> attribute 'TclError'" in<bound method Font.__del__ of<tkFont.Font
>> instance at
>> 0x2ac0dd4c4680>>  ignored
>>
>> and I have no way of capturing them since they arrive even after the
>> last line of the program.
>> I believe that for some reason the tkinter is deleted before and
>> afterwards it tries to delete the fonts and creates the TclError.
>> Is there a way to protect for these exceptions?
>>
>> I was getting the same problem with the PhotoImage() but now I am
>> trying to delete all of them before the end of the program to avoid
>> the exceptions. However with fonts I can miss something e.g replace a
>> font and exit afterwards.
>>
>>      
> Can you provide a minimal code example that exhibits the problem?
>
> Michael
>
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> http://mail.python.org/mailman/listinfo/tkinter-discuss
>    

-- 
-------------------------------------------------------
Vasilis Vlachoudis
Dep. EN-STI-EET
Web: home.cern.ch/bnv
Tel: +41-22-7679851
Fax: +41-22-7669644
-------------------------------------------------------



More information about the Tkinter-discuss mailing list