code: def _run_callback(
          self, callback: Callable, *args: Any, **kwargs: Any
      ) -> "Optional[Future[Any]]":
          
          try:
              result = callback(*args, **kwargs)
          except Exception:
              self.handler.log_exception(*sys.exc_info())
              self._abort()
              return None
          else:
              if result is not None:
                  result = gen.convert_yielded(result)
                  assert self.stream is not None
                  self.stream.io_loop.add_future(result, lambda f: f.result())
              return result
docs: Runs the given callback with exception handling.
  
          If the callback is a coroutine, returns its Future. On error, aborts the
          websocket connection and returns None.