code: def response(self, request, exception):
          
          handler = self.lookup(exception)
          response = None
          try:
              if handler:
                  response = handler(request, exception)
              if response is None:
                  response = self.default(request, exception)
          except Exception:
              self.log(format_exc())
              try:
                  url = repr(request.url)
              except AttributeError:
                  url = "unknown"
              response_message = (
                  "Exception raised in exception handler " '"%s" for uri: %s'
              )
              logger.exception(response_message, handler.__name__, url)
  
              if self.debug:
                  return text(response_message % (handler.__name__, url), 500)
              else:
                  return text("An error occurred while handling an error", 500)
          return response
docs: Fetches and executes an exception handler and returns a response
          object
  
          :param request: Instance of :class:`sanic.request.Request`
          :param exception: Exception to handle
  
          :type request: :class:`sanic.request.Request`
          :type exception: :class:`sanic.exceptions.SanicException` or
              :class:`Exception`
  
          :return: Wrap the return value obtained from :func:`default`
              or registered handler for that type of exception.