[PyQt] Exception propagation in the exec_() loop

Yuya Nishihara yuya at tcha.org
Fri Jan 24 11:25:28 GMT 2014


On Thu, 23 Jan 2014 13:43:32 -0600, Bryan A. Jones wrote:
> It seems that exceptions which occur in an event loop (when calling
> app.exec_(), for instance) are caught and printed, but not passed on. Is
> there any way to allow exceptions to propagate past exec_()? As a concrete
> example, the following code prints the following backtrace, but doesn't
> exit.
> 
> import sys
> from PyQt4.QtCore import QTimer
> from PyQt4.QtGui import QApplication
> 
> def af():
>     assert False
> 
> def main():
>     app = QApplication(sys.argv)
>     QTimer.singleShot(0, af)
>     app.exec_()

You can install sys.excepthook for uncaught exceptions.

http://docs.python.org/2.7/library/sys.html#sys.excepthook

Regards,


More information about the PyQt mailing list