How can I setup a global DeadlineExceededError handler?

Viewed 540

I'd like to catch and handle DeadlineExceededError so users don't see the standard "Server Error" page that App Engine throws by default.

I know that DeadlineExceededErrors are not caught when overriding handle_exception in your request handler (we already do this).

I have tried, unsuccessfully so far, to use the custom error_handlers app.yaml configuration like so:

error_handlers:
  - error_code: timeout
    file: timeout.html

...but that also doesn't seem to catch DeadlineExceededErrors, unless I'm doing something wrong.

I am aware that I can use the following pattern to catch DeadlineExceededErrors inside particular request handlers:

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

...but I would like to avoid adding this to every single request handler in my application.

How can I globally catch these elusive suckers?

1 Answers
Related