[PyQt] Exception handling hook
sundance at ierne.eu.org
Wed May 23 15:19:27 BST 2007
Arve Knudsen wrote:
> If an exception is raised in the last Python
> layer, it is swallowed by the excepthook and a nice message box pops
> up, BUT once control returns to the first Python layer
In my opinion, the exception hook should never even return. That's what
I meant when I said your application should then close. When you're
dealing with an uncaught exception anyway, something has gone wrong and
it is generally wise not to attempt to keep running, lest data
corruption and bad karma occur, in that approximate order.
I am not sure that what you seem to be asking for is at all possible --
it would involve making the Qt event loop aware of Python exceptions, I
think, which doesn't at all sound like good Feng Shui to me.
If you really, really want to deal with Python exceptions at the
outermost possible level (which will still be inside the Qt event loop
level, mind), then I guess you should make an exception hook that will
store the exception stack in some global variable, push some manner of
custom event to the application's main event queue (or put the
exception stack /in/ the custom event), then return, and have a custom
event handler pull the exception stack off that custom event and only
THEN process it. And quit.
Theorically feasible, I would imagine.
But I still think that quitting the application right away would make
less baby angels cry, mind.
Hope this helps nonetheless!
More information about the PyQt