Manipuladores de eventos PyQt exceções snarf

Aqui está o código que ilustra o problema:

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'

Quando eu executo isso, o PyQt4 lida com o erro para mim. Meu console exibe um rastreamento de pilha com 'Crash!' etc., e vejo "não deveria acontecer".

Isso não é útil, porque eu recebi um grande aplicativo com muitos manipuladores e preciso forçartodos seus erros na minha cara (e nos meus testes automatizados). Cada vez que eu corro, os erros escapam das minhas redes, e eles exigem uma tentativa excessiva e inútil: exceto blocos, dentro de cada manipulador, apenas para pegá-los todos.

Em outras palavras, quero que um código bom seja muito bom e um código ruim seja muito ruim. Não branqueado.

Desculpas se isso já foi solicitado, mas quando eu procuro por ele, naturalmente recebo milhares de novatos fazendo perguntas básicas sobre o tratamento de erros (ou, pior, recebo novatos perguntando como desligar suas exceções).

Como faço para substituir o tratamento de erros padrão do PyQt4, para que eu possa propagar ou registrar erros eu mesmo? E por favor, não responda sys.excepthook - ele pega os erros que PyQt4não faz pegar.

questionAnswers(2)

yourAnswerToTheQuestion