summaryrefslogtreecommitdiffstats
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
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.)
-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