Python try...except comma vs 'as' in except
The definitive document is PEP-3110: Catching Exceptions
Summary:
- In Python 3.x, using
as
is required to assign an exception to a variable. - In Python 2.6+, use the
as
syntax, since it is far less ambiguous and forward compatible with Python 3.x. - In Python 2.5 and earlier, use the comma version, since
as
isn't supported.
Yes it's legal. I'm running Python 2.6
try:
[] + 3
except Exception as x:
print "woo hoo"
>>>
woo hoo
Update: There is another reason to use the as
syntax. Using ,
makes things a lot more ambiguous, as others have pointed out; and here's what makes the difference. As of Python 2.6, there is multicatch
which allows you to catch multiple exceptions in one except
block. In such a situation, it's more expressive and pythonic to say
except (exception1, exception2) as e
rather than to say
except (exception1, exception2), e
which would still work