Neos.Fusion/Classes/Core/Runtime.php
public function handleRenderingException($fusionPath, \Exception $exception, $useInnerExceptionHandler = false)
    {
        $fusionConfiguration = $this->getConfigurationForPath($fusionPath);

        if (isset($fusionConfiguration['__meta']['exceptionHandler'])) {
            $exceptionHandlerClass = $fusionConfiguration['__meta']['exceptionHandler'];
            $invalidExceptionHandlerMessage = 'The class "%s" is not valid for property "@exceptionHandler".';
        } else {
            if ($useInnerExceptionHandler === true) {
                $exceptionHandlerClass = $this->settings['rendering']['innerExceptionHandler'];
            } else {
                $exceptionHandlerClass = $this->settings['rendering']['exceptionHandler'];
            }
            $invalidExceptionHandlerMessage = 'The class "%s" is not valid for setting "Neos.Fusion.rendering.exceptionHandler".';
        }
        $exceptionHandler = null;
        if ($this->objectManager->isRegistered($exceptionHandlerClass)) {
            $exceptionHandler = $this->objectManager->get($exceptionHandlerClass);
        }

        if ($exceptionHandler === null || !($exceptionHandler instanceof AbstractRenderingExceptionHandler)) {
            $message = sprintf(
                $invalidExceptionHandlerMessage . "\n" .
                'Please specify a fully qualified classname to a subclass of %2$s\AbstractRenderingExceptionHandler.' . "\n" .
                'You might implement an own handler or use one of the following:' . "\n" .
                '%2$s\AbsorbingHandler' . "\n" .
                '%2$s\HtmlMessageHandler' . "\n" .
                '%2$s\PlainTextHandler' . "\n" .
                '%2$s\ThrowingHandler' . "\n" .
                '%2$s\XmlCommentHandler',
                $exceptionHandlerClass,
                'Neos\Fusion\Core\ExceptionHandlers'
            );
            throw new InvalidConfigurationException($message, 1368788926);
        }

        $exceptionHandler->setRuntime($this);
        if (array_key_exists('__objectType', $fusionConfiguration)) {
            $fusionPath .= sprintf('<%s>', $fusionConfiguration['__objectType']);
        }
        $output = $exceptionHandler->handleRenderingException($fusionPath, $exception);

        return $output;
    }
public function handleRenderingException($fusionPath, \Exception $exception, $useInnerExceptionHandler = false)
    {
        $fusionConfiguration = $this->getConfigurationForPath($fusionPath);

        if (isset($fusionConfiguration['__meta']['exceptionHandler'])) {
            $exceptionHandlerClass = $fusionConfiguration['__meta']['exceptionHandler'];
            $invalidExceptionHandlerMessage = 'The class "%s" is not valid for property "@exceptionHandler".';
        } else {
            if ($useInnerExceptionHandler === true) {
                $exceptionHandlerClass = $this->settings['rendering']['innerExceptionHandler'];
            } else {
                $exceptionHandlerClass = $this->settings['rendering']['exceptionHandler'];
            }
            $invalidExceptionHandlerMessage = 'The class "%s" is not valid for setting "Neos.Fusion.rendering.exceptionHandler".';
        }
        $exceptionHandler = null;
        if ($this->objectManager->isRegistered($exceptionHandlerClass)) {
            $exceptionHandler = $this->objectManager->get($exceptionHandlerClass);
        }

        if ($exceptionHandler === null || !($exceptionHandler instanceof AbstractRenderingExceptionHandler)) {
            $message = sprintf(
                $invalidExceptionHandlerMessage . "\n" .
                'Please specify a fully qualified classname to a subclass of %2$s\AbstractRenderingExceptionHandler.' . "\n" .
                'You might implement an own handler or use one of the following:' . "\n" .
                '%2$s\AbsorbingHandler' . "\n" .
                '%2$s\HtmlMessageHandler' . "\n" .
                '%2$s\PlainTextHandler' . "\n" .
                '%2$s\ThrowingHandler' . "\n" .
                '%2$s\XmlCommentHandler',
                $exceptionHandlerClass,
                'Neos\Fusion\Core\ExceptionHandlers'
            );
            throw new InvalidConfigurationException($message, 1368788926);
        }

        $exceptionHandler->setRuntime($this);
        if (array_key_exists('__objectType', $fusionConfiguration)) {
            $fusionPath .= sprintf('<%s>', $fusionConfiguration['__objectType']);
        }
        $output = $exceptionHandler->handleRenderingException($fusionPath, $exception);

        return $output;
    }
public function handleRenderingException ( $ fusionPath , \ Exception $ exception , $ useInnerExceptionHandler = false ) { $ fusionConfiguration = $ this -> getConfigurationForPath ( $ fusionPath ) ; if ( isset ( $ fusionConfiguration [ '__meta' ] [ 'exceptionHandler' ] ) ) { $ exceptionHandlerClass = $ fusionConfiguration [ '__meta' ] [ 'exceptionHandler' ] ; $ invalidExceptionHandlerMessage = 'The class "%s" is not valid for property "@exceptionHandler".' ; } else { if ( $ useInnerExceptionHandler === true ) { $ exceptionHandlerClass = $ this -> settings [ 'rendering' ] [ 'innerExceptionHandler' ] ; } else { $ exceptionHandlerClass = $ this -> settings [ 'rendering' ] [ 'exceptionHandler' ] ; } $ invalidExceptionHandlerMessage = 'The class "%s" is not valid for setting "Neos.Fusion.rendering.exceptionHandler".' ; } $ exceptionHandler = null ; if ( $ this -> objectManager -> isRegistered ( $ exceptionHandlerClass ) ) { $ exceptionHandler = $ this -> objectManager -> get ( $ exceptionHandlerClass ) ; } if ( $ exceptionHandler === null || ! ( $ exceptionHandler instanceof AbstractRenderingExceptionHandler ) ) { $ message = sprintf ( $ invalidExceptionHandlerMessage . "\n" . 'Please specify a fully qualified classname to a subclass of %2$s\AbstractRenderingExceptionHandler.' . "\n" . 'You might implement an own handler or use one of the following:' . "\n" . '%2$s\AbsorbingHandler' . "\n" . '%2$s\HtmlMessageHandler' . "\n" . '%2$s\PlainTextHandler' . "\n" . '%2$s\ThrowingHandler' . "\n" . '%2$s\XmlCommentHandler' , $ exceptionHandlerClass , 'Neos\Fusion\Core\ExceptionHandlers' ) ; throw new InvalidConfigurationException ( $ message , 1368788926 ) ; } $ exceptionHandler -> setRuntime ( $ this ) ; if ( array_key_exists ( '__objectType' , $ fusionConfiguration ) ) { $ fusionPath .= sprintf ( '<%s>' , $ fusionConfiguration [ '__objectType' ] ) ; } $ output = $ exceptionHandler -> handleRenderingException ( $ fusionPath , $ exception ) ; return $ output ; }
Handle an Exception thrown while rendering Fusion according to
settings specified in Neos.Fusion.rendering.exceptionHandler

@param string $fusionPath
@param \Exception $exception
@param boolean $useInnerExceptionHandler
@return string
@throws InvalidConfigurationException
Handle an Exception thrown while rendering Fusion according to settings specified in Neos . Fusion . rendering . exceptionHandler