无法使用 urllib2 捕获异常
Cant catch exeptions with urllib2
我有一个脚本打印出 API 的响应,但我似乎无法捕捉到任何异常。我想我已经通过了关于这个主题的所有问题,但没有任何运气。
如何检查脚本是否会捕获任何 errors/exceptions?
我正在一个我知道的网站上测试脚本 returns 403 禁止,但它不显示。
我的脚本:
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 块中发生任何异常,则变量 request
在 response = request.text()
块中变为 undefined
。
将其更正为
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
块将完成这项工作。
我有一个脚本打印出 API 的响应,但我似乎无法捕捉到任何异常。我想我已经通过了关于这个主题的所有问题,但没有任何运气。
如何检查脚本是否会捕获任何 errors/exceptions?
我正在一个我知道的网站上测试脚本 returns 403 禁止,但它不显示。
我的脚本:
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 块中发生任何异常,则变量 request
在 response = request.text()
块中变为 undefined
。
将其更正为
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
块将完成这项工作。