[PyKDE] starting a new PyKDE project

Jim Bublitz jbublitz at nwinternet.com
Wed Jan 17 20:23:59 GMT 2007


On Wednesday 17 January 2007 09:22, Joseph Rawson wrote:
> I do have a quick question.  Is it possible to display a KMessageBox.error
> on any exception that is raised while the application loop is running?  I
> know that I can make my own exception classes and have them make the
> dialogs, but this only helps when I expect an error.

Look at sys.excepthook in the sys module in the Python Library Reference 
docs.. Define an exception handler:

 # 3 arguments required
def yourExceptionHandler (a,b,c): 
	print "*** got exception ***"

and beofre starting the event loop do:

sys.excepthook = yourExceptionHandler

The sys..excepthook method (which is now pointed to "yourExceptionHandler") 
gets all unhandled exceptions.

You could, for example, define a method that pops up the KMessageBox as part 
of your KMainWindow subclass, and then call that method from 
"yourExceptionHandler".

An easy test is to define a button that attempts division by zero when clicked 
- "yourExceptionHandler" should get called when you click the button, and 
whatever you code that to do should then happen.

Jim






More information about the PyQt mailing list