Jarves\EventListener\RestExceptionListener::onKernelException PHP Method

onKernelException() public method

public onKernelException ( GetResponseForExceptionEvent $event )
$event Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent
    public function onKernelException(GetResponseForExceptionEvent $event)
    {
        if ($this->container->get('jarves.page_stack')->isAdmin()) {
            $exception = $event->getException();
            $statusCode = $exception instanceof HttpExceptionInterface ? $exception->getStatusCode() : 500;
            $view = ['status' => $statusCode, 'error' => get_class($event->getException()), 'message' => $event->getException()->getMessage()];
            if ($exception instanceof RestException) {
                $view['data'] = $exception->getData();
            }
            $previous = $exception;
            while ($previous = $previous->getPrevious()) {
                $prev = array('error' => get_class($previous), 'message' => $previous->getMessage());
                if ($this->container->get('kernel')->isDebug()) {
                    $trace = Tools::getArrayTrace($previous);
                    $prev['file'] = $previous->getFile();
                    $prev['line'] = $previous->getLine();
                    $prev['trace'] = $trace;
                }
                $view['previous'][] = $prev;
            }
            if ($this->container->get('kernel')->isDebug()) {
                $trace = Tools::getArrayTrace($event->getException());
                $view['file'] = $event->getException()->getFile();
                $view['line'] = $event->getException()->getLine();
                $view['trace'] = $trace;
            }
            $response = new Response(json_encode($view, JSON_PRETTY_PRINT));
            $response->headers->set('Content-Type', 'application/json');
            $event->setResponse($response);
            //why does the kernel send a 500 statusCode ?
        }
    }