tkinter python:捕获异常

ale*_*dro 5 python error-handling tkinter

开始在python中编程我觉得在家里有错误报告.现在我正在使用Tkinter进行编程,我发现经常发生我的程序中存在错误,即使它们生成异常我也没注意到:我抓住它们(有时)因为我去调试Step by步骤(我使用wingIDE)并且例如在给定的行我看到报告的异常.但是令我恼火的是程序没有停止,但即使在不在 try/error 中的块中也会发生这种情况.

如果我说的话有意义,你知道一些至少显示错误的整体方法吗?在Tkinter中,我可以创建一个错误窗口,并在发生任何异常时填充它.

Ste*_*ski 9

请参阅如何在tkinter中使静音异常更响亮的答案,其中显示了如何挂钩回调tkinter.Tk.report_callback_exception.


ank*_*tis 5

正如@ jochen-ritzel所说的那样(我应该在tkinter中使声音更大吗?),tk.TK.report_callback_exception()你可以覆盖:

import traceback
import tkMessageBox

# You would normally put that on the App class
def show_error(self, *args):
    err = traceback.format_exception(*args)
    tkMessageBox.showerror('Exception',err)
# but this works too
tk.Tk.report_callback_exception = show_error
Run Code Online (Sandbox Code Playgroud)