diff options
author | Guido van Rossum <guido@python.org> | 1998-10-13 20:02:39 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-10-13 20:02:39 (GMT) |
commit | 9f1292d84000f9793793002f46cd2767ff8e3dc6 (patch) | |
tree | 4f6a26c2836b2d94a9a8bbd7cc1087350fc2fa58 | |
parent | ad24ae10df60b77cf3cbd6497798d0d72a2810c1 (diff) | |
download | cpython-9f1292d84000f9793793002f46cd2767ff8e3dc6.zip cpython-9f1292d84000f9793793002f46cd2767ff8e3dc6.tar.gz cpython-9f1292d84000f9793793002f46cd2767ff8e3dc6.tar.bz2 |
Perhaps a controversial change: when reporting a callback exception,
assign the exception info to sys.last_{type,value,traceback}. That
way, an introspective Tkinter app can inspect its own stack trace.
(The controversy is that it would keep some objects alive, but that's
probably no big deal.)
-rw-r--r-- | Lib/lib-tk/Tkinter.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py index 4662f3b..0f4c713 100644 --- a/Lib/lib-tk/Tkinter.py +++ b/Lib/lib-tk/Tkinter.py @@ -935,6 +935,9 @@ class Tk(Misc, Wm): def report_callback_exception(self, exc, val, tb): import traceback, sys sys.stderr.write("Exception in Tkinter callback\n") + sys.last_type = exc + sys.last_value = val + sys.last_traceback = tb traceback.print_exception(exc, val, tb) # Ideally, the classes Pack, Place and Grid disappear, the |