/** * On dispatch event listener - called on any event * * @param Event $event * @param string $eventName * @return void */ public function onException(Event $event) { if ($event instanceof Amqp\ErrorEvent) { $event->getEvent()->addHeader("x-exception", ["message" => $event->getException()->getMessage(), "code" => $event->getException()->getCode(), "class" => get_class($event->getException())]); $this->postpone($event->getEvent()); $event->getEvent()->ack(); if ($this->stopPropagation) { $event->stopPropagation(); } } }
/** * On dispatch event listener - called on any event * * @param Event $event * @param string $eventName * @return void */ public function onException(Event $event, $eventName) { if ($event instanceof Amqp\ErrorEvent) { $event->getEvent()->addHeader("x-exception", ["message" => $event->getException()->getMessage(), "code" => $event->getException()->getCode(), "class" => get_class($event->getException())]); $this->deadLetter($event->getEvent(), $event->getException()); $event->getEvent()->reject(null); if ($this->stopPropagation) { $event->stopPropagation(); } } }
/** * @param Event $event * @return mixed|Response */ public function __invoke(Event $event) { /** @var DispatchErrorEvent $event */ $exc = $event->getException(); return new Response($event->isDebug() ? $exc->getMessage() : $this->getErrorHtml(), Response::HTTP_INTERNAL_SERVER_ERROR, ['content-type' => 'text/html']); }