summaryrefslogtreecommitdiffstats
path: root/Lib/lib-tk
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-10-13 20:02:39 (GMT)
committerGuido van Rossum <guido@python.org>1998-10-13 20:02:39 (GMT)
commit9f1292d84000f9793793002f46cd2767ff8e3dc6 (patch)
tree4f6a26c2836b2d94a9a8bbd7cc1087350fc2fa58 /Lib/lib-tk
parentad24ae10df60b77cf3cbd6497798d0d72a2810c1 (diff)
downloadcpython-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.)
Diffstat (limited to 'Lib/lib-tk')
-rw-r--r--Lib/lib-tk/Tkinter.py3
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