我想在引发URLError异常后抓取HTTP状态代码:
我尝试了这个但没有帮助:
except URLError, e:
logger.warning( 'It seems like the server is down. Code:' + str(e.code) )
答案 0 :(得分:62)
捕获URLError
后不应检查状态代码,因为在没有HTTP状态代码的情况下可以引发该异常,例如当您收到连接拒绝错误时。
使用HTTPError
检查HTTP特定错误,然后使用URLError
检查其他问题:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
当然,你可能想要做一些比打印错误代码更聪明的事情,但你明白了。
答案 1 :(得分:2)
不确定为什么会收到此错误。如果您使用urllib2
,这应该会有所帮助:
import urllib2
from urllib2 import URLError
try:
urllib2.urlopen(url)
except URLError, e:
print e.code