[Python-Dev] Proposing a sys.special_exceptions tuple

Michael Hudson mwh at python.net
Fri Oct 1 13:43:56 CEST 2004


"Phillip J. Eby" <pje at telecommunity.com> writes:

> At 12:52 PM 9/30/04 -0300, Lalo Martins wrote:
>>On Thu, Sep 30, 2004 at 10:19:22AM -0400, Phillip J. Eby wrote:
>> >
>> > Also, maybe in 2.5 we could begin warning about bare excepts that aren't
>> > preceded by non-bare exceptions.
>>
>>try:
>>   foo()
>>except:
>>   print_or_log_exception_in_a_way_that_is_meaningful()
>>   raise
>>
>>doesn't seem to be incorrect to me.  For example, if the program
>>is a daemon, I want the exception logged somewhere so that I can
>>see it later, because I won't be watching stderr.
>
> 1. If the exception raised is a MemoryError, your daemon is in trouble.

Not necessarily.  Typing 'range(sys.maxint)' into the interactive
interpreter gives a fairly harmless MemoryError (the only exception
PyRepl doesn't catch is SystemExit).

> 2. I said *warn*, and it'd be easy to suppress the warning using
>    except Exception:', if that's what you really mean

Well, apart from the fact that this doesn't catch, uh, exceptions that
don't derive from Exception?  Until/unless that's enforced (something
that gets thrashed around every other month) there's still a place for
'bare except:'.

Cheers,
mwh

-- 
  SCSI is not magic. There are fundamental technical reasons why it
  is necessary to sacrifice a young goat to your SCSI chain now and
  then.                                                  -- John Woods


More information about the Python-Dev mailing list