首先解释下URLError可能产生的缘由:html
在代码中,咱们须要用try-except语句来包围并捕获相应的异常。编程
requset = urllib2.Request('http://www.xxxxx.com') try: urllib2.urlopen(request) except urllib2.URLError, e: print e.reason #输出结果 1 [Errno 11004] getaddrinfo failed
下面咱们写一个例子来感觉一下,捕获的异常是HTTPError,它会带有一个code属性,就是错误代号,另外咱们又打印了reason属性,这是它的父类URLError的属性。服务器
咱们知道,HTTPError的父类是URLError,根据编程经验,父类的异常应当写到子类异常的后面,若是子类捕获不到,那么能够捕获父类的异常,因此上述的代码能够这么改写网络
若是捕获到了HTTPError,则输出code,不会再处理URLError异常。若是发生的不是HTTPError,则会去捕获URLError异常,输出错误缘由。ui
另外还能够加入 hasattr属性提早对属性进行判断,代码改写以下url
import urllib2 req = urllib2.Request('http://blog.csdn.net/cqcre') try: urllib2.urlopen(req) except urllib2.URLError, e: if hasattr(e,"reason"): print e.reason else: print "OK"
转自崔庆才博客https://cuiqingcai.com/961.htmlspa