Steven D'Aprano: >ExpectedErrors = (URLError, IOError) >ErrorsThatCantHappen = > >try: > process_things() >except ExpectedErrors: > recover_from_error_gracefully() >except ErrorsThatCantHappen: > print "Congratulations! You have found a program bug!" > print "For a $327.68 reward, please send the following " \ > "traceback to Professor Donald Knuth." > raise >except: > print "An unexpected error occurred." > print "This probably means the Internet is broken." > print "If the bug still occurs after fixing the Internet, " \ > "it may be a program bug." > log_error() > sys.exit()
Yes, I think I'll do something like this. Perhaps combined with Peter's advice to not micromanage, like so: Reraise = (LookupError, ArithmeticError, AssertionError) # And then some try: process_things() except Reraise: raise except: log_error() -- René Pijlman -- http://mail.python.org/mailman/listinfo/python-list