docs: def handle(self, env, data):
          '''
          Calls application and handles following cases:
              * catches `webob.HTTPException` errors.
              * catches unhandled exceptions, calls `handle_error` method
                and returns 500.
              * returns 404 if the app has returned None`.
          '''
          try:
              response = self.handler(env, data)
              if response is None:
                  logger.debug('Application returned None '
                               'instead of Response object')
                  response = HTTPNotFound()
          except HTTPException as e:
              response = e
          except Exception as e:
              self.handle_error(env)
              response = HTTPInternalServerError()
          return response