changeset: 92423:994a16b51544 branch: 2.7 user: Serhiy Storchaka date: Sun Sep 14 21:17:16 2014 +0300 files: Lib/lib-tk/Tkinter.py description: Issue #22384: An exception in Tkinter callback no longer crashes the program when it is run with pythonw.exe. Documented that Tk.report_callback_exception() is purposed to be overriden in applications. diff -r 8f678db15869 -r 994a16b51544 Lib/lib-tk/Tkinter.py --- a/Lib/lib-tk/Tkinter.py Sun Sep 14 17:40:44 2014 +0300 +++ b/Lib/lib-tk/Tkinter.py Sun Sep 14 21:17:16 2014 +0300 @@ -1879,9 +1879,12 @@ if os.path.isfile(base_py): execfile(base_py, dir) def report_callback_exception(self, exc, val, tb): - """Internal function. It reports exception on sys.stderr.""" + """Report callback exception on sys.stderr. + + Applications may want to override this internal function, and + should when sys.stderr is None.""" import traceback, sys - sys.stderr.write("Exception in Tkinter callback\n") + print >>sys.stderr, "Exception in Tkinter callback" sys.last_type = exc sys.last_value = val sys.last_traceback = tb