urllib2.URLError:[Errno 11004] getaddrinfo失败
我试图通过这样做来处理它:
except mechanize.URLError, e:
result = str(e.reason)
或
except urllib2.URLError, e:
result = str(e.reason)
甚至
except Exception, e:
result = str(e)
但它只是不想工作。
如何解决这个问题?当发生此错误时,我只想打印“连接失败”之类的内容并移动到列表中的下一个地址。如何通过except
捕获此错误?
答案 0 :(得分:7)
随机猜测,但尝试:
import socket
try:
...
except socket.gaierror:
pass
socket.gaierror
是"[Errno 11004] getaddrinfo failed"
错误。
如果你这样做,你可以很容易地找出异常
try:
...
except:
import sys
# prints `type(e), e` where `e` is the last exception
print sys.exc_info()[:2]
答案 1 :(得分:2)
只做
except urrlib2.URLError:
print "Connection failed"
continue # NOTE: This assumes this is in a loop. If not, substitute for return
大多数Python库会在错误报告中告诉您异常的类型,在本例中为urllib2.URLError
,所以这确实是except
的用途。
但是,如果except Exception:
不适合您,那么您遇到的问题比用户输入错误的网址时更严重(假设这不是urllib2的错误)。