changeset: 92425:7191b14ca312 parent: 92421:6cdb7981eb0f parent: 92424:c62fad86fac3 user: Serhiy Storchaka date: Sun Sep 14 21:18:31 2014 +0300 files: Lib/tkinter/__init__.py Misc/NEWS 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 6cdb7981eb0f -r 7191b14ca312 Lib/tkinter/__init__.py --- a/Lib/tkinter/__init__.py Sun Sep 14 16:21:27 2014 +0300 +++ b/Lib/tkinter/__init__.py Sun Sep 14 21:18:31 2014 +0300 @@ -1919,9 +1919,12 @@ if os.path.isfile(base_py): exec(open(base_py).read(), 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.stderr.write("Exception in Tkinter callback\n") + print("Exception in Tkinter callback", file=sys.stderr) sys.last_type = exc sys.last_value = val sys.last_traceback = tb diff -r 6cdb7981eb0f -r 7191b14ca312 Misc/NEWS --- a/Misc/NEWS Sun Sep 14 16:21:27 2014 +0300 +++ b/Misc/NEWS Sun Sep 14 21:18:31 2014 +0300 @@ -132,6 +132,9 @@ Library ------- +- Issue #22384: An exception in Tkinter callback no longer crashes the program + when it is run with pythonw.exe. + - Issue #22168: Prevent turtle AttributeError with non-default Canvas on OS X. - Issue #21147: sqlite3 now raises an exception if the request contains a null