python – 我需要处理与urllib2.Request/urlopen什么错误/异常?

我有以下代码做回发到远程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')

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

我有一个问题,当这个代码运行时,远程服务器关闭,代码退出(这是在客户服务器上,所以我不知道退出堆栈转储/错误在这个时候)。我假设这是因为有一个异常和/或错误,没有被处理。所以有没有任何其他异常可能会触发,我没有处理上面?

最佳答案
添加通用异常处理程序:

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())

转载注明原文:python – 我需要处理与urllib2.Request/urlopen什么错误/异常? - 代码日志