[Python-Dev] Breaking bug #411881 into manageable pieces
Skip Montanaro
skip@pobox.com
2002年3月20日 15:08:32 -0600
(BAW - why does supercite ruin code indentation when quoting???)
>> There's a standard idiom for this:
>>
>> try:
>> ...code...
>> except KeyboardInterrupt:
>> raise
>> except:
>> ...handler...
aahz> May I suggest yet one more alteration:
aahz> try:
aahz> ...code...
aahz> except (KeyboardInterrupt,SystemExit):
aahz> raise
aahz> except:
aahz> ...handler...
Which reminds me about a proposal I made here last November:
http://mail.python.org/pipermail/python-dev/2001-November/018394.html
Executive summary: Make KeyboardInterrupt inherit directly from Exception
instead of from StandardError, so your standard idiom becomes:
try:
fragile code
except StandardError:
recover
Anything that you might generally not want to trap (KeyboardInterrupt and
SystemExit are the usual suspects, but Warning and StopIteration also fall
into this category I think) should not inherit from StandardError.
Skip