Насколько я вижу, если в слоте под PyQt возникает исключение, исключение печатается на экран, но не барботируется. Это создает проблему в моей стратегии тестирования, потому что если в слоте возникает исключение, я не увижу, что тест завершился неудачей.
Вот пример:
import sys
from PyQt4 import QtGui, QtCore
class Test(QtGui.QPushButton):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setText("hello")
self.connect(self, QtCore.SIGNAL("clicked()"), self.buttonClicked)
def buttonClicked(self):
print "clicked"
raise Exception("wow")
app=QtGui.QApplication(sys.argv)
t=Test()
t.show()
try:
app.exec_()
except:
print "exiting"
Обратите внимание, что исключение никогда не покидает программу.
Есть ли способ обойти эту проблему?