Hello everybody - my first post! And it may be the most monumentally stupid question ever asked, but I just can't see an answer after several hours experimenting, searching and reading.
It's simply this - how can a function determine whether or not it's being called in handling of an exception (ie. there is an "active" exception, and somewhere upstream on the stack there is an except: block statement)? Depending on what you read, sys.exc_info() is supposed to return (None,None,None) when there is no active exception, but it seems that it returns info about the last exception when there isn't one currently active. For example: try: a = a + 1 except: pass print sys.exc_info() produces: <class exceptions.NameError at 0x009648D0>, <exceptions.NameError instance at 0x00B5E508>, <traceback object at 0x00B5E4E0> Where the traceback object identifies the offending a=a+1 line (of course). Is there another way of doing this? Note that I can't rely on using sys.exc_clear() in any solution, unfortunately. cheers - John -- http://mail.python.org/mailman/listinfo/python-list