2011-09-21 74 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

相關問題