我执行以下操作:
try:
result = urlfetch.fetch(url=some_url,
...
except DownloadError:
self.response.out.write('DownloadError')
logging.error('DownloadError')
except Error:
self.response.out.write('Error')
logging.error('Error')
有没有办法对发生的事情进行更详细的描述?
答案 0 :(得分:3)
您应该使用logging.exception
将异常添加到ERROR日志消息中:
try:
result = urlfetch.fetch(url=some_url,
...
except DownloadError, exception:
self.response.out.write('Oops, DownloadError: %s' % exception)
logging.exception('DownloadError')
except Error:
self.response.out.write('Oops, Error')
logging.exception('Error')
答案 1 :(得分:0)
简而言之,没有。下载错误通常是我们经验中的超时 - 后端需要太长时间来响应(第一个字节)。如果它正在接收数据,看起来GAE将等待并在你的10秒钟之后抛出截止日期异常。
它永远成功吗?您对如何处理d / l异常的选择将根据后端而有所不同。
如果您采用简单的路线并且只是重试,请注意配额和限制器 - 您的请求确实可能会到达其他系统,而且不会及时回来。很容易以这种方式吹过限制器。
Ĵ