小编典典

我需要使用urllib2.Request / urlopen处理哪些错误/异常?

python

我有以下代码来回发到远程URL:

request = urllib2.Request('http://www.example.com', postBackData, { 'User-Agent' : 'My User Agent' })

try: 
    response = urllib2.urlopen(request)
except urllib2.HTTPError, e:
    checksLogger.error('HTTPError = ' + str(e.code))
except urllib2.URLError, e:
    checksLogger.error('URLError = ' + str(e.reason))
except httplib.HTTPException, e:
    checksLogger.error('HTTPException')

使用使用urllib.urlencode编码的字典来创建postBackData。checksLogger是使用logging的记录器。

我有一个问题,当远程服务器关闭并退出代码时,该代码将运行(这是在客户服务器上的,所以我不知道此时退出堆栈转储/错误是什么)。我假设这是因为存在未处理的异常和/或错误。那么,是否有其他我未处理的异常可能触发?


阅读 122

收藏
2020-12-20

共1个答案

小编典典

添加通用异常处理程序:

request = urllib2.Request('http://www.example.com', postBackData, { 'User-Agent' : 'My User Agent' })

try: 
    response = urllib2.urlopen(request)
except urllib2.HTTPError, e:
    checksLogger.error('HTTPError = ' + str(e.code))
except urllib2.URLError, e:
    checksLogger.error('URLError = ' + str(e.reason))
except httplib.HTTPException, e:
    checksLogger.error('HTTPException')
except Exception:
    import traceback
    checksLogger.error('generic exception: ' + traceback.format_exc())
2020-12-20