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