docs: def dispatch(self, operation, request, **path_args):
          """
          Dispatch incoming request and capture top level exceptions.
          """
          # Add current operation to the request (for convenience in middleware methods)
          request.current_operation = operation
  
          try:
              for middleware in self.middleware.pre_request:
                  response = middleware(request, path_args)
                  # Return HttpResponse if one is returned.
                  if isinstance(response, HttpResponse):
                      return response
  
              response = self._dispatch(operation, request, path_args)
  
              for middleware in self.middleware.post_request:
                  response = middleware(request, response)
  
          except Exception as ex:
              if self.debug_enabled:
                  # If debug is enabled then fallback to the frameworks default
                  # error processing, this often provides convenience features
                  # to aid in the debugging process.
                  raise
              self.handle_500(request, ex)
              return HttpResponse("Error processing response.", HTTPStatus.INTERNAL_SERVER_ERROR)
  
          else:
              return response