Commit 95024877 authored by Serhiy Storchaka's avatar Serhiy Storchaka

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.
parent d9cf65f0
...@@ -1917,9 +1917,12 @@ class Tk(Misc, Wm): ...@@ -1917,9 +1917,12 @@ class Tk(Misc, Wm):
if os.path.isfile(base_py): if os.path.isfile(base_py):
exec(open(base_py).read(), dir) exec(open(base_py).read(), dir)
def report_callback_exception(self, exc, val, tb): 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 import traceback
sys.stderr.write("Exception in Tkinter callback\n") print("Exception in Tkinter callback", file=sys.stderr)
sys.last_type = exc sys.last_type = exc
sys.last_value = val sys.last_value = val
sys.last_traceback = tb sys.last_traceback = tb
......
...@@ -32,6 +32,9 @@ Core and Builtins ...@@ -32,6 +32,9 @@ Core and Builtins
Library 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 #22168: Prevent turtle AttributeError with non-default Canvas on OS X.
- Issue #21147: sqlite3 now raises an exception if the request contains a null - Issue #21147: sqlite3 now raises an exception if the request contains a null
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment