我有以下代码来回发到远程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的记录器。
我有一个问题,当远程服务器关闭并退出代码时,该代码将运行(这是在客户服务器上的,所以我不知道此时退出堆栈转储/错误是什么)。我假设这是因为存在未处理的异常和/或错误。那么,是否有其他我未处理的异常可能触发?
添加通用异常处理程序:
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())