Class ExceptionRenderer

Exception Renderer.

Captures and handles all unhandled exceptions. Displays helpful framework errors when debug is true. When debug is false a ExceptionRenderer will render 404 or 500 errors. If an uncaught exception is thrown and it is a type that ExceptionHandler does not know about it will be treated as a 500 error.

Implementing application specific exception rendering

You can implement application specific exception handling by creating a subclass of ExceptionRenderer and configure it to be the exceptionRenderer in config/error.php

Using a subclass of ExceptionRenderer

Using a subclass of ExceptionRenderer gives you full control over how Exceptions are rendered, you can configure your class in your config/app.php.

Namespace: Cake\Error

Properties summary

  • $controller protected
    \Cake\Controller\Controller

    Controller instance.

  • $error protected
    \Throwable

    The exception being handled.

  • $method protected
    string

    The method corresponding to the Exception this object is for.

  • $request protected
    \Cake\Http\ServerRequest|null

    If set, this will be request used to create the controller that will render the error.

  • $template protected
    string

    Template to render for Cake\Core\Exception\Exception

Method Summary

  • __construct() public

    Creates the controller to perform rendering on the error response.

  • __debugInfo() public

    Returns an array that can be used to describe the internal state of this object.

  • _code() protected

    Get HTTP status code.

  • _customMethod() protected

    Render a custom error method/template.

  • _getController() protected

    Get the controller instance to handle the exception.

  • _message() protected

    Get error message.

  • _method() protected

    Get method name

  • _outputMessage() protected

    Generate the response using the controller object.

  • _outputMessageSafe() protected

    A safer way to render error messages, replaces all helpers, with basics and doesn't call component methods.

  • _shutdown() protected

    Run the shutdown events.

  • _template() protected

    Get template for rendering exception info.

  • clearOutput() protected

    Clear output buffers so error pages display properly.

  • render() public

    Renders the response for the exception.

Method Detail

__construct() public

__construct(\Throwable $exception, ?\Cake\Http\ServerRequest $request)

Creates the controller to perform rendering on the error response.

If the error is a Cake\Core\Exception\Exception it will be converted to either a 400 or a 500 code error depending on the code used to construct the error.

Parameters

\Throwable $exception

Exception.

\Cake\Http\ServerRequest $request optional

The request if this is set it will be used instead of creating a new one.

__debugInfo() public

__debugInfo()

Returns an array that can be used to describe the internal state of this object.

Returns

array

_code() protected

_code(\Throwable $exception)

Get HTTP status code.

Parameters

\Throwable $exception

Exception.

Returns

int

A valid HTTP error status code.

_customMethod() protected

_customMethod(string $method, \Throwable $exception)

Render a custom error method/template.

Parameters

string $method

The method name to invoke.

\Throwable $exception

The exception to render.

Returns

\Cake\Http\Response

The response to send.

_getController() protected

_getController()

Get the controller instance to handle the exception.

Override this method in subclasses to customize the controller used. This method returns the built in ErrorController normally, or if an error is repeated a bare controller will be used.

Returns

\Cake\Controller\Controller

_message() protected

_message(\Throwable $exception, int $code)

Get error message.

Parameters

\Throwable $exception

Exception.

int $code

Error code.

Returns

string

Error message

_method() protected

_method(\Throwable $exception)

Get method name

Parameters

\Throwable $exception

Exception instance.

Returns

string

_outputMessage() protected

_outputMessage(string $template)

Generate the response using the controller object.

Parameters

string $template

The template to render.

Returns

\Cake\Http\Response

A response object that can be sent.

_outputMessageSafe() protected

_outputMessageSafe(string $template)

A safer way to render error messages, replaces all helpers, with basics and doesn't call component methods.

Parameters

string $template

The template to render.

Returns

\Cake\Http\Response

A response object that can be sent.

_shutdown() protected

_shutdown()

Run the shutdown events.

Triggers the afterFilter and afterDispatch events.

Returns

\Cake\Http\Response

The response to serve.

_template() protected

_template(\Throwable $exception, string $method, int $code)

Get template for rendering exception info.

Parameters

\Throwable $exception

Exception instance.

string $method

Method name.

int $code

Error code.

Returns

string

Template name

clearOutput() protected

clearOutput()

Clear output buffers so error pages display properly.

render() public

render()

Renders the response for the exception.

Returns

\Cake\Http\Response

The response to be sent.

Property Detail

$controller protected

Controller instance.

Type

\Cake\Controller\Controller

$error protected

The exception being handled.

Type

\Throwable

$method protected

The method corresponding to the Exception this object is for.

Type

string

$request protected

If set, this will be request used to create the controller that will render the error.

Type

\Cake\Http\ServerRequest|null

$template protected

Template to render for Cake\Core\Exception\Exception

Type

string

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.0/class-Cake.Error.ExceptionRenderer.html