Dietcube\Dispatcher::handleError PHP Method

handleError() public method

public handleError ( Exception $errors ) : Response
$errors Exception
return Response
    public function handleError(\Exception $errors)
    {
        $logger = $this->container['logger'];
        if (!isset($this->container['response'])) {
            $response = $this->prepareResponse();
        } else {
            $response = $this->container['response'];
        }
        $action_result = "";
        if ($this->app->isDebug()) {
            $logger->error('Error occurred. (This log is debug mode only) ', ['error' => get_class($errors), 'message' => $errors->getMessage()]);
            $debug_controller = isset($this->container['app.debug_controller']) ? $this->container['app.debug_controller'] : __NAMESPACE__ . '\\Controller\\DebugController';
            $controller = $this->app->createController($debug_controller);
            // FIXME: debug controller method name?
            $action_result = $this->executeAction([$controller, 'dumpErrors'], ['errors' => $errors], $fire_events = false);
        } else {
            $logger->info('Error occurred. ', ['error' => get_class($errors), 'message' => $errors->getMessage()]);
            list($controller_name, $action_name) = $this->detectErrorAction($errors);
            $controller = $this->app->createController($controller_name);
            $action_result = $this->executeAction([$controller, $action_name], ['errors' => $errors], $fire_events = false);
        }
        $response->setBody($action_result);
        return $this->filterResponse($response);
    }