[Python-Dev] PEP 463: Exception-catching expressions
Stephen J. Turnbull
stephen at xemacs.org
Sat Feb 22 07:57:02 CET 2014
Ethan Furman writes:
> On 02/21/2014 07:46 PM, Chris Angelico wrote:
> >
> > but not this:
> >
> > value = expr except Exception: default except Exception: default
>
> This should be the way it works. Nothing is gained in readability
> by turning a try with multiple except statements into an
> expression.
Examples have been given several times. In general, if 'expr' is a
function call, it may well have a couple of different ways to fail
which imply different default values.
interpolable = func(key) except TypeError: "not a string: %s" % key \
except KeyError: "no such key: %s" % key
print("Some message that refers to '%s' % interpolable")
versus
try:
interpolable = func(key)
except TypeError:
interpolable = "not a string: %s" % key
except KeyError:
interpolable = "no such key: %s" % key
print("Some message that refers to '%s' % interpolable")
I think the latter begs to be written as the former.
More information about the Python-Dev
mailing list