code: def _dispatch_event(self, event, data=None):
          
          for callback in self._callbacks[event]:
              self._logger.debug(
                  "Running %s callbacks for event: '%s'",
                  len(self._callbacks[event]),
                  event,
              )
              try:
                  if self._stopped and event not in ["close", "error"]:
                      # Don't run callbacks if client was stopped unless they're close/error callbacks.
                      break
  
                  if self.run_async:
                      self._execute_callback_async(callback, data)
                  else:
                      self._execute_callback(callback, data)
              except Exception as err:
                  name = callback.__name__
                  module = callback.__module__
                  msg = f"When calling '#{name}()' in the '{module}' module the following error was raised: {err}"
                  self._logger.error(msg)
                  raise
docs: Dispatches the event and executes any associated callbacks.
  
          Note: To prevent the app from crashing due to callback errors. We
          catch all exceptions and send all data to the logger.
  
          Args:
              event (str): The type of event. e.g. 'bot_added'
              data (dict): The data Slack sent. e.g.
              {
                  "type": "bot_added",
                  "bot": {
                      "id": "B024BE7LH",
                      "app_id": "A4H1JB4AZ",
                      "name": "hugbot"
                  }
              }