Paul Dale wrote:

> I'm writing an exception that will open a trouble ticket for certain
> events. Things like network failure. I thought I would like to have it
> only open a ticket if the exception is not caught. Is there a way to do
> this inside the Exception? As far as I can see there are only two events
> called on the exception, __init__ and __del__, both of which will be
> called wether or not an exception is caught (right?)
>
> Am I missing something, or is there a way to do this with exceptions?

if you want to trap "uncaught" exceptions, add an except handler to the top
level of your program:

    try:
        main()
    except MySpecialException, v:
        v.open_trouble_ticket()

a less convoluted approach would be do to

    def open_trouble_ticket(exctype, value, traceback):
        ...

    try:
        main()
    except:
        open_trouble_ticket(*sys.exc_info())

or, in recent Python versions,

    import sys

    def open_trouble_ticket(exctype, value, traceback):
        ...

    sys.excepthook = open_trouble_ticket

    main()

</F> 



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to