How to except the unexpected?
James Stroud
jstroud at ucla.edu
Sat Mar 4 16:19:29 EST 2006
Rene Pijlman wrote:
> 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()
>
Why catch an error only to re-raise it?
This falls under http://c2.com/cgi/wiki?YouReallyArentGonnaNeedThis
More information about the Python-list
mailing list