Skip to main content
 首页 » 编程设计

python之在 appengine 中测试 error_handlers

2025年05月04日27zhwl

我在应用引擎 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 超过了人为的截止日期造成的。它似乎适用于语法错误情况和“实际”截止日期超出消息(例如,写入数据存储时超时)并且希望超出配额。

是什么原因导致 发生服务器错误。请联系管理员。 消息?它来自哪里?我搜索了google appengine sdk python代码,没有找到。

谢谢。

请您参考如下方法:

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

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

例如,在你开始任何 webapp 的东西之前坚持一个 raise StringError 并看看会发生什么;-)