相关疑难解决方法(0)

PyQt事件处理程序snarf异常

这是说明问题的代码:

from PyQt4 import QtGui
app = QtGui.QApplication([])
dialog = QtGui.QDialog()
button = QtGui.QPushButton('I crash')
layout = QtGui.QHBoxLayout()
layout.addWidget(button)
dialog.setLayout(layout)
def crash(): raise Exception('Crash!')
button.clicked.connect(crash)
button.click()
print 'I should not happen'
Run Code Online (Sandbox Code Playgroud)

当我运行它时,PyQt4为我处理错误.我的控制台显示"崩溃!"的堆栈跟踪 在其中,我看到'我不应该发生'.

这没有用,因为我已经交了一个包含许多处理程序的大型应用程序,我需要将所有错误强加到我的脸上(并进入我的 - 自动化测试).每次我运行时,错误都会逃脱我的网络,并且它们需要过多且无用的尝试:除了块,在每个处理程序中,只是为了捕获它们.

换句话说,我希望良好的代码非常好,而糟糕的代码则非常糟糕.没有粉刷.

如果已经提出这个问题,我会道歉,但是当我进行电子搜索时,我自然会让成千上万的新手询问基本的错误处理问题(或者更糟糕的是,我让新手询问如何关闭他们任性的异常!;)

如何覆盖PyQt4的默认错误处理,以便我自己传播或记录错误?请不要回答sys.excepthook,它会捕获PyQt4 无法捕获的错误.

exception-handling pyqt pyqt4

6
推荐指数
1
解决办法
2302
查看次数

标签 统计

exception-handling ×1

pyqt ×1

pyqt4 ×1