2011-09-21 43 views
1

我做到以下几点:如何获得DownloadError的细节?

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

有没有什么办法让上发生了什么的更详细的说明?

回答

3

您应该使用logging.exception的例外添加到错误日志消息:

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

虽然这是一个很好的做法,在这种情况下,它不会添加任何有意义的东西。 GAE不会给你任何关于DownloadError的更多信息。 –

+0

@Jan当然logging.exception给出DownloadError异常堆栈跟踪; downvoting在这里似乎有点不合时宜。 – systempuntoout

+0

它给出了错误的文字说明 - 'DownloadError:的ApplicationError:2的连接操作超时out'。我能以某种方式将它显示在页面上吗? –

0

总之,没有。下载错误通常是在我们的经验超时 - 这是在后端太长响应(第一个字节)。如果接收数据时,它看起来像GAE将等待你的10秒后,而不是抛出一个异常截止日期到了。

曾经成功吗?你如何处理与d/L例外的选择将取决于后端。

如果你正在做的简单的路线,只是重试,谨防配额和限制的 - 机会是你的要求确实达到了其他系统,只是在时间上不回来了。这种方式非常容易吹过限制器。

J

相关问题