urlib2.URLError 及其在 python 中的原因
the urlib2.URLError and its reason in python
问题的标题可能有点令人困惑,但我真的不知道怎么表达才好...
我发现了以下代码块,它通过使用 urllib2 库从网上下载网页。
import urllib2
def download(url):
try:
html = urllib2.urlopen(url).read()
except urllib2.URLError as e:
print 'Download error:', e.reason
html = None
return html
现在如果 e.code
是 404 那么 e.reason
只是一个空字符串,这意味着它完全没有关于触发错误的信息,因此我真的不明白这一点在这里使用 e.reason
。
打印 e
似乎更合理,但即使我将它更改为简单的 print e
它仍然会产生一些尴尬的东西: HTTP Error 404:
并且冒号显然后面跟着一个空细绳...
所以在我看来,上述代码在异常处理方面有点笨拙。是这样吗?
似乎您可以使用错误本身 (print e) 或代码和原因 (print "Download Error: ", e.code, e.reason) 如果您愿意查看 404 代码。
问题的标题可能有点令人困惑,但我真的不知道怎么表达才好... 我发现了以下代码块,它通过使用 urllib2 库从网上下载网页。
import urllib2
def download(url):
try:
html = urllib2.urlopen(url).read()
except urllib2.URLError as e:
print 'Download error:', e.reason
html = None
return html
现在如果 e.code
是 404 那么 e.reason
只是一个空字符串,这意味着它完全没有关于触发错误的信息,因此我真的不明白这一点在这里使用 e.reason
。
打印 e
似乎更合理,但即使我将它更改为简单的 print e
它仍然会产生一些尴尬的东西: HTTP Error 404:
并且冒号显然后面跟着一个空细绳...
所以在我看来,上述代码在异常处理方面有点笨拙。是这样吗?
似乎您可以使用错误本身 (print e) 或代码和原因 (print "Download Error: ", e.code, e.reason) 如果您愿意查看 404 代码。