[Python-Dev] Bare except clauses in PEP 348

James Y Knight foom at fuhm.net
Wed Aug 24 17:23:52 CEST 2005


On Aug 24, 2005, at 11:10 AM, Guido van Rossum wrote:
> On 8/24/05, Michael Chermside <mcherm at mcherm.com> wrote:
>>> Explicit is better than Implicit. I think that in newly written code
>> "except Exception:" is better (more explicit and easier to 
>> understand)
>> than "except:" Legacy code that uses "except:" can remain 
>> unchanged *IF*
>> the meaning of "except:" is unchanged... but I think we all agree 
>> that
>> this is unwise because the existing meaning is a tempting trap for 
>> the
>> unwary. So I don't see any advantage to keeping bare "except:" in the
>> long run. What we do to ease the transition is a different question,
>> but one more easily resolved.
>>>> OK, I'm convinced. Let's drop bare except for Python 3.0, and
> deprecate them until then, without changing the meaning.
>> The deprecation message (to be generated by the compiler!) should
> steer people in the direction of specifying one particular exception
> (e.g. KeyError etc.) rather than Exception.

I agree but there's the minor nit of non-Exception exceptions.
I think it must be the case that raising an object which does not 
derive from an exception class must be deprecated as well in order 
for "except:" to be deprecated. Otherwise, there is nothing you can 
change "except:" to in order not to get a deprecation warning and 
still have your code be correct in the face of documented features of 
python.
James


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /