Why this exception catch doesn't work?? (python 3)

MRAB python at mrabarnett.plus.com
Tue Apr 20 07:06:15 EDT 2010


Dodo wrote:
> Hello,
> 
> I don't understand why this won't execute
> 
> 
> import urllib.request as u
> import socket
> socket.setdefaulttimeout(10)
> 
> l = "http://img144.imageshack.us/my.php?image=koumakandg8.jpg" # 
> supposed to timeout
> try:
>     h = u.urlretrieve(l)
> except u.URLError, e: # I tried u.e too, no effect.
>     print(e)
> except:
>     print("other error")
> 
> The error :
> 
> ...\Python>err.py
>   File "...\err.py", line 8
>     except u.URLError, e: # I tried u.e too, no effect.
>                      ^
> SyntaxError: invalid syntax
> 
In Python 3 it's:

     except u.URLError as e:

This a because in Python 2 people sometimes write:

     except OSError, IOError:

thinking that it will catch both OSError and IOError.



More information about the Python-list mailing list