无法使用 urllib2 捕获异常

花花公子

我有一个脚本打印出来自 API 的响应,但我似乎无法捕获任何异常。我想我已经在没有任何运气的情况下解决了有关此主题的所有问题。

如何检查脚本是否会捕获任何错误/异常?

我正在一个我知道返回 403 Forbidden 的站点上测试脚本,但它没有显示。

我的脚本:

import urllib2

url_se = 'http://www.example.com'

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'API to File')]

try:
    request = opener.open(url_se)
except urllib2.HTTPError, e:
    print  e.code
except urllib2.URLError, e:
    print e.args
except Exception:
    import traceback
    print 'Generic exception ' + traceback.format_exc()

response = request.read()                            
print response

这是正确的方法吗?捕捉异常的最佳实践是什么

urllib2
拉詹·乔汉

您的程序中存在错误。如果在try块发生任何异常则变requestundefinedresponse = request.text()块。
更正为

import urllib2

url_se = 'http://www.example.com'

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'API to File')]

try:
    request = opener.open(url_se)
    response = request.read()                            
    print response
except urllib2.HTTPError, e:
    print  e.code
except urllib2.URLError, e:
    print e.args
except Exception as e:
    import traceback
    print 'Generic exception ' + traceback.format_exc()

在您的机器上测试它,您肯定会看到异常。单独捕获异常只有在您对它们进行指定时才有意义,否则如果您只想记录异常,那么通用except块将完成这项工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用urllib2检查响应

来自分类Dev

Python:使用urllib2登录Moodle

来自分类Dev

504:使用urllib2的网关超时

来自分类Dev

如何使用urllib2获取cookie

来自分类Dev

504:使用urllib2的网关超时

来自分类Dev

使用urllib2跟随重定向

来自分类Dev

使用urllib2的Python追溯错误

来自分类Dev

使用 urllib2 远程阅读 pdf

来自分类Dev

无法使用urllib2下载整个文件

来自分类Dev

python使用urllib2和urllib获取请求问题

来自分类Dev

如何使用phpspec2捕获异常

来自分类Dev

如何使用ActivityInstrumentationTestCase2捕获异常?

来自分类Dev

如何使用phpspec2捕获异常

来自分类Dev

Python urllib2异常非数字端口:“端口/”

来自分类Dev

python urllib2无法获取特定的URL

来自分类Dev

Python无法导入urllib2(产生错误)

来自分类Dev

urllib2.URLError异常未捕获

来自分类Dev

重试使用urllib2超时时加载页面?

来自分类Dev

使用Python urllib2登录网站表单

来自分类Dev

Django:使用Urllib2自动填充CharField

来自分类Dev

使用Urllib2和virtualenv的Python Anywhere问题

来自分类Dev

使用urllib2下载zipfile失败

来自分类Dev

使用urllib2来获取3.3.2中的Internet资源

来自分类Dev

使用urllib2和/或wget自动下载文件

来自分类Dev

Python-如何知道您使用urllib2登录

来自分类Dev

在urllib2中使用certifi模块?

来自分类Dev

如何使用urllib2在Python中发送标头

来自分类Dev

使用python urllib2返回url文件流

来自分类Dev

使用urllib2刮除Biography.com