我想在发生URLError异常时获取HTTP状态码:
我尝试过下面的方法但没有成功:
except URLError, e:
logger.warning( 'It seems like the server is down. Code:' + str(e.code) )
在捕获URLError
异常后,不应检查状态码,因为该异常可能会在没有HTTP状态码可用的情况下引发,例如当出现连接被拒绝错误时。
使用HTTPError
来检查HTTP特定错误,然后使用URLError
来检查其他问题:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
当然,你可能希望做一些比仅仅打印错误代码更聪明的事情,但你已经有了这个想法。
不确定为什么出现了这个错误。如果您正在使用 urllib2
,那么这将有所帮助:
import urllib2
from urllib2 import URLError
try:
urllib2.urlopen(url)
except URLError, e:
print e.code