try:
raise IOError('IOError')
except IOError as e:
print e
try:
raise IOError('IOError')
except IOError, e:
print e
> I don't see any different between the following code in terms of output.
> Are they exactly the same ('as' v.s. ',')?
>
> try:
> raise IOError('IOError')
> except IOError as e:
> print e
This is the preferred syntax. It is used in Python 2.6 and better. It is
a syntax error in Python 2.5 and older.
> try:
> raise IOError('IOError')
> except IOError, e:
> print e
This is the obsolete syntax, used in Python 2.5 and older.
--
Steven
The second form is the old form. Later versions of Python introduced the
first form because it is less confusing.
If you wanted a single 'except' to catch 2 exceptions you would need to
write:
try:
...
except (IOError, OSError):
...
Sometimes people who are new to Python mistakenly write:
try:
...
except IOError, OSError:
...
thinking that that form will catch 2 exceptions, and they'll then be
puzzled when it doesn't work properly.