]> granicus.if.org Git - python/commitdiff
Issue #22384: An exception in Tkinter callback no longer crashes the program
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 14 Sep 2014 18:17:32 +0000 (21:17 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Sun, 14 Sep 2014 18:17:32 +0000 (21:17 +0300)
when it is run with pythonw.exe.

Documented that Tk.report_callback_exception() is purposed to be overriden in
applications.

Lib/tkinter/__init__.py
Misc/NEWS

index c9a2c71e6ebf4fc7e4228a81f5f7f41f2bfe8740..a1ffca14341d51341ee62afe1d3e4c757e664ba9 100644 (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
index 523965b447c989ad28363a48065de085848c515c..f7e9fa7cd0770dab7604aaa4828eb754ecb8274d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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