[Python-Dev] os.path.walk() lacks 'depth first' option

Phillip J. Eby pje@telecommunity.com
Mon, 12 May 2003 20:34:21 -0400


At 10:00 AM 5/13/03 +1000, Delaney, Timothy C (Timothy) wrote:
>I can't think of any case in *my* code where I would want to distinguish 
>between a TypeError and an AttributeError - usually I end up having:
>
>     try:
>         ...
>     except (TypeError, AttributeError):
>         ...

How odd.  I was going to say the reverse; that I *always* want to 
distinguish between the two, because TypeError almost invariably is a 
programming error of some kind, while AttributeError is nearly always an 
error that I'm checking in order to have a fallback.  E.g.:

try:
    foo = thingy.foo
except AttributeError:
    # default case
else:
    foo()

However, if 'thingy.foo' were to raise any other kind of error, such as a 
TypeError, it'd probably mean that thingy had a broken 'foo' descriptor 
that I'd want to know about.