private function tryDispatch(Subscription $subscription, Event $event)
        {
            $dispatched = false;

            try {
                $dispatched = $this->doDispatch($subscription, $event);
            } catch (\Exception $ex) {
                if (! $this->silent) {
                    throw new \RuntimeException('Dispatch triggered an exception', 0, $ex);
                }

                $message = sprintf(self::FMT_ERR_DISPATCH, $event->getId(), $ex->getMessage());

                $this->logger->error($message, array(
                'event-category' => $event->getCategory(),
                'subscription-filter' => $subscription->getCategoryFilter(),
                'subscriber_class' => get_class($subscription->getSubscriber()),
                'message' => $ex->getMessage(),
                'trace' => $ex->getTraceAsString()
                ));
            }

            return $dispatched;
        }