Python urllib2 URLError HTTP状态代码。

Python urllib2 URLError HTTP状态代码。,python,exception,urllib2,Python,Exception,Urllib2,我想在HTTP状态代码引发URLError异常时获取它: 我试过了,但没用: except URLError, e: logger.warning( 'It seems like the server is down. Code:' + str(e.code) ) 不确定为什么会出现此错误。如果您使用的是urllib2,这将有助于: import urllib2 from urllib2 import URLError try: urllib2.urlopen(url) ex

我想在HTTP状态代码引发URLError异常时获取它:

我试过了,但没用:

except URLError, e:
    logger.warning( 'It seems like the server is down. Code:' + str(e.code) )

不确定为什么会出现此错误。如果您使用的是
urllib2
,这将有助于:

import urllib2
from urllib2 import URLError

try:
    urllib2.urlopen(url)
except URLError, e:
    print e.code

捕获
urleror
后不应检查状态代码,因为在没有可用HTTP状态代码的情况下,例如当您遇到连接被拒绝错误时,可能会引发该异常

使用
HTTPError
检查HTTP特定错误,然后使用
urleror
检查其他问题:

try:
    urllib2.urlopen(url)
except urllib2.HTTPError, e:
    print e.code
except urllib2.URLError, e:
    print e.args

当然,您可能想做一些比打印错误代码更聪明的事情,但您得到了这个想法。

奇怪。您可以粘贴用于打开url的代码吗?为了100%安全,您可能还需要检查ValueError,因为urllib2.urlopen将在输入的url无效或为空时引发ValueError异常。“URLError”对象没有属性“code”。最好使用e.reason。