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.
This commit is contained in:
Serhiy Storchaka 2014-09-14 21:17:32 +03:00
parent d9cf65f00e
commit 9502487781
2 changed files with 8 additions and 2 deletions

View File

@ -1917,9 +1917,12 @@ class Tk(Misc, Wm):
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

View File

@ -32,6 +32,9 @@ Core and Builtins
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