On Sun, Apr 10, 2011 at 3:25 PM, Jason Swails <jason.swa...@gmail.com> wrote: > > Hello everyone, > > This may sound like a bit of a strange desire, but I want to change the way > in which a python program quits if an exception is not caught. The program > has many different classes of exceptions (for clarity purposes), and they're > raised whenever something goes wrong. Most I want to be fatal, but others > I'd want to catch and deal with. > > Is there any way to control Python's default exit strategy when it hits an > uncaught exception (for instance, call another function that exits > "differently")?
When an exception is raised and uncaught, the interpreter calls sys.excepthook. You can replace sys.excepthook with your own function. See http://docs.python.org/library/sys.html#sys.excepthook If your program is threaded, you may need to look at this bug: http://bugs.python.org/issue1230540. It describes a problem with replacing sys.excepthook when using the threading module, along with some workarounds. There's a simple example of replacing excepthook here: http://code.activestate.com/recipes/65287/ -- Jerry -- http://mail.python.org/mailman/listinfo/python-list