framework/web/ErrorHandler.php
protected function renderException($exception)
    {
        if (Yii::$app->has('response')) {
            $response = Yii::$app->getResponse();
            // reset parameters of response to avoid interference with partially created response data
            // in case the error occurred while sending the response.
            $response->isSent = false;
            $response->stream = null;
            $response->data = null;
            $response->content = null;
        } else {
            $response = new Response();
        }

        $response->setStatusCodeByException($exception);

        $useErrorView = $response->format === Response::FORMAT_HTML && (!YII_DEBUG || $exception instanceof UserException);

        if ($useErrorView && $this->errorAction !== null) {
            $result = Yii::$app->runAction($this->errorAction);
            if ($result instanceof Response) {
                $response = $result;
            } else {
                $response->data = $result;
            }
        } elseif ($response->format === Response::FORMAT_HTML) {
            if ($this->shouldRenderSimpleHtml()) {
                // AJAX request
                $response->data = '<pre>' . $this->htmlEncode(static::convertExceptionToString($exception)) . '</pre>';
            } else {
                // if there is an error during error rendering it's useful to
                // display PHP error in debug mode instead of a blank screen
                if (YII_DEBUG) {
                    ini_set('display_errors', 1);
                }
                $file = $useErrorView ? $this->errorView : $this->exceptionView;
                $response->data = $this->renderFile($file, [
                    'exception' => $exception,
                ]);
            }
        } elseif ($response->format === Response::FORMAT_RAW) {
            $response->data = static::convertExceptionToString($exception);
        } else {
            $response->data = $this->convertExceptionToArray($exception);
        }

        $response->send();
    }
protected function renderException($exception)
    {
        if (Yii::$app->has('response')) {
            $response = Yii::$app->getResponse();
            // reset parameters of response to avoid interference with partially created response data
            // in case the error occurred while sending the response.
            $response->isSent = false;
            $response->stream = null;
            $response->data = null;
            $response->content = null;
        } else {
            $response = new Response();
        }

        $response->setStatusCodeByException($exception);

        $useErrorView = $response->format === Response::FORMAT_HTML && (!YII_DEBUG || $exception instanceof UserException);

        if ($useErrorView && $this->errorAction !== null) {
            $result = Yii::$app->runAction($this->errorAction);
            if ($result instanceof Response) {
                $response = $result;
            } else {
                $response->data = $result;
            }
        } elseif ($response->format === Response::FORMAT_HTML) {
            if ($this->shouldRenderSimpleHtml()) {
                // AJAX request
                $response->data = '<pre>' . $this->htmlEncode(static::convertExceptionToString($exception)) . '</pre>';
            } else {
                // if there is an error during error rendering it's useful to
                // display PHP error in debug mode instead of a blank screen
                if (YII_DEBUG) {
                    ini_set('display_errors', 1);
                }
                $file = $useErrorView ? $this->errorView : $this->exceptionView;
                $response->data = $this->renderFile($file, [
                    'exception' => $exception,
                ]);
            }
        } elseif ($response->format === Response::FORMAT_RAW) {
            $response->data = static::convertExceptionToString($exception);
        } else {
            $response->data = $this->convertExceptionToArray($exception);
        }

        $response->send();
    }
protected function renderException ( $ exception ) { if ( Yii :: $ app -> has ( 'response' ) ) { $ response = Yii :: $ app -> getResponse ( ) ; // reset parameters of response to avoid interference with partially created response data // in case the error occurred while sending the response. $ response -> isSent = false ; $ response -> stream = null ; $ response -> data = null ; $ response -> content = null ; } else { $ response = new Response ( ) ; } $ response -> setStatusCodeByException ( $ exception ) ; $ useErrorView = $ response -> format === Response :: FORMAT_HTML && ( ! YII_DEBUG || $ exception instanceof UserException ) ; if ( $ useErrorView && $ this -> errorAction !== null ) { $ result = Yii :: $ app -> runAction ( $ this -> errorAction ) ; if ( $ result instanceof Response ) { $ response = $ result ; } else { $ response -> data = $ result ; } } elseif ( $ response -> format === Response :: FORMAT_HTML ) { if ( $ this -> shouldRenderSimpleHtml ( ) ) { // AJAX request $ response -> data = '<pre>' . $ this -> htmlEncode ( static :: convertExceptionToString ( $ exception ) ) . '</pre>' ; } else { // if there is an error during error rendering it's useful to // display PHP error in debug mode instead of a blank screen if ( YII_DEBUG ) { ini_set ( 'display_errors' , 1 ) ; } $ file = $ useErrorView ? $ this -> errorView : $ this -> exceptionView ; $ response -> data = $ this -> renderFile ( $ file , [ 'exception' => $ exception , ] ) ; } } elseif ( $ response -> format === Response :: FORMAT_RAW ) { $ response -> data = static :: convertExceptionToString ( $ exception ) ; } else { $ response -> data = $ this -> convertExceptionToArray ( $ exception ) ; } $ response -> send ( ) ; }
Renders the exception.
@param \Exception|\Error $exception the exception to be rendered.
Renders the exception .