docs: def dispatch_operation(self, operation, request, path_args):
          # type: (Operation, BaseHttpRequest, Dict[str, Any]) -> Tuple[Any, Optional[HTTPStatus], Optional[dict]]
          """
          Dispatch and handle exceptions from operation.
          """
          try:
              # path_args is passed by ref so changes can be made.
              for middleware in self.middleware.pre_dispatch:
                  middleware(request, path_args)
  
              resource = operation(request, path_args)
  
              for middleware in self.middleware.post_dispatch:
                  resource = middleware(request, resource)
  
          except ImmediateHttpResponse as e:
              # An exception used to return a response immediately, skipping any
              # further processing.
              return e.resource, e.status, e.headers
  
          except ValidationError as e:
              # A validation error was raised by a resource.
              if hasattr(e, 'message_dict'):
                  resource = Error.from_status(HTTPStatus.BAD_REQUEST, 0, "Failed validation", meta=e.message_dict)
              else:
                  resource = Error.from_status(HTTPStatus.BAD_REQUEST, 0, str(e))
              return resource, resource.status, None
  
          except NotImplementedError:
              resource = Error.from_status(HTTPStatus.NOT_IMPLEMENTED, 0, "The method has not been implemented")
              return resource, resource.status, None
  
          except Exception as e:
              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
  
              resource = None
              # Fallback to the default handler
              if resource is None:
                  resource = self.handle_500(request, e)
  
              return resource, resource.status, None
  
          else:
              return resource, None, None