Chris Allen <[EMAIL PROTECTED]> wrote: > I am confused on one aspect of exception handling. If you specify the > exception object type to match in an except statement it is possible > to also obtain the exception object itself, but I can't figure out how > to get the exception object when I don't specify a match.
In most cases you can just catch Exception. If you want to be sure to catch deprecated string exceptions also then use sys.exc_info(). try: ... something ... except Exception, e: print e Also what you want to do with it when you've caught it makes a difference: If you are planning on logging a stack backtrace then you'll want the traceback as well as the exception, so sys.exc_info() might be indicated except that in that case you'll be better off using logging.exception() instead. try: ... something ... except: logging.exception("Unexpected error") If you are just planning on swallowing the exception then you don't want any of these: you want to catch the specific exceptions that you expect to be raised. > >>> except (),msg: Using an empty tuple for the exception specification won't catch any exceptions. Not very useful if the tuple is a literal, but it could be useful in some obscure situations (e.g. an except clause to handle exceptions declared in a specific DLL which might not always be present). -- http://mail.python.org/mailman/listinfo/python-list