gpt4 book ai didi

google-app-engine - 如何设置全局 DeadlineExceededError 处理程序?

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:05 27 4
gpt4 key购买 nike

我想捕获并处理 DeadlineExceededError,这样用户就不会看到 App Engine 默认抛出的标准“服务器错误”页面。

我知道 DeadlineExceededErrors 是 not caught when overriding handle_exception在您的请求处理程序中(我们已经这样做了)。

到目前为止,我已经尝试使用 custom error_handlers app.yaml configuration 未成功像这样:

error_handlers:
- error_code: timeout
file: timeout.html

...但这似乎也没有捕捉到 DeadlineExceededErrors,除非我做错了什么。

我知道我可以使用以下模式来捕获特定请求处理程序中的 DeadlineExceededErrors:

class MainPage(webapp.RequestHandler):
def get(self):
try:
# Do stuff...
except DeadlineExceededError:
# Many Whelps! Handle it!

...但我想避免将此添加到我的应用程序中的每个请求处理程序中。

我怎样才能在全局范围内捕捉到这些难以捉摸的傻瓜?

最佳答案

一个可能的解决方案是使用 webapp2,它是一个非常简洁的框架,并且比原始的 webapp 有很多有用的东西。使用webapp2,可以在handle_500方法中处理异常,如下:

def BaseHandler(webapp2.RequestHandler):
def handle_500(request, response, exception):
if isinstance(exception, DeadlineExceededError):
response.write('Deadline exceeded!')
else:
response.write('A server error occurred!')

logging.exception(exception)
response.set_status(500)

关于google-app-engine - 如何设置全局 DeadlineExceededError 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com