2

我在应用引擎 app.yaml 文件中添加了以下错误处理程序:

error_handlers:
- file: default_error.html

然后我计划用强制 DeadlineExceededError 对其进行测试

所以我有一个请求处理程序:

class Timeout(webapp.RequestHandler):
  def get(self):
    count=100
    if self.request.get('count'):
        count=int(self.request.get('count'))
    time.sleep(count)

我打电话给http://20-social.race-timing-failsafe.appspot.com/timeout?count=100我希望我的 default_error.html 文件被显示。

相反,我看到:

A server error occurred.  Please contact the administrator.

这可能是由于通过 time.sleep 超过了人为的最后期限造成的。它似乎适用于语法错误情况和“实际”期限超过消息(例如,写入数据存储时超时),并希望超过配额。

是什么导致了A server error occurred. Please contact the administrator.消息?它来自哪里?我搜索了google appengine sdk python代码,没有找到。

谢谢。

4

1 回答 1

1

该错误消息不是原始的 Google 错误消息,因此看起来您的堆栈中的其他内容正在捕获异常并给出响应。

只有在应用程序的任何地方都没有捕获到异常时,才会提供默认错误处理程序。

例如,在你启动任何 webapp 之前粘贴一个 raise StringError 看看会发生什么;-)

于 2012-06-10T02:24:04.477 回答