Class ExceptionRenderer

Exception Renderer.

Captures and handles all unhandled exceptions. Displays helpful framework errors when debug is true. When debug is false a CakeException 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.

Cake\Error\ExceptionRenderer implements Cake\Error\ExceptionRendererInterface
Namespace: Cake\Error
Location: Error/ExceptionRenderer.php

Properties summary

Method Summary

  • __construct() public

    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.

  • __debugInfo() public

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

  • __get() public
    Magic accessor for properties made protected.
  • __set() public
    Magic setter for properties made protected.
  • _code() protected
    Get HTTP status code.
  • _customMethod() protected
    Render a custom error method/template.
  • _getController() protected

    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.

  • _message() protected
    Get error message.
  • _method() protected
    Get method name
  • _outputMessage() protected
    Generate the response using the controller object.
  • 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.
  • _unwrap() protected

    Returns the unwrapped exception object in case we are dealing with a PHP 7 Error object

  • render() public
    Renders the response for the exception.

Method Detail

__construct()source public

__construct( Exception $exception , Cake\Http\ServerRequest $request = null )

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

Exception $exception
Exception.
Cake\Http\ServerRequest $request optional null
The request - if this is set it will be used instead of creating a new one

__debugInfo()source public

__debugInfo( )

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

Returns

array

__get()source public

__get( string $name )

Magic accessor for properties made protected.

Parameters

string $name
Name of the attribute to get.

Returns

mixed

__set()source public

__set( string $name , mixed $value )

Magic setter for properties made protected.

Parameters

string $name
Name to property.
mixed $value
Value for property.

_code()source protected

_code( Exception $exception )

Get HTTP status code.

Parameters

Exception $exception
Exception.

Returns

integer
A valid HTTP error status code.

_customMethod()source protected

_customMethod( string $method , Exception $exception )

Render a custom error method/template.

Parameters

string $method
The method name to invoke.
Exception $exception
The exception to render.

Returns

Cake\Http\Response
The response to send.

_getController()source 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

Triggers

Controller.startup $controller

_message()source protected

_message( Exception $exception , integer $code )

Get error message.

Parameters

Exception $exception
Exception.
integer $code
Error code.

Returns

string
Error message

_method()source protected

_method( Exception $exception )

Get method name

Parameters

Exception $exception
Exception instance.

Returns

string

_outputMessage()source 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()source 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()source protected

_shutdown( )

Run the shutdown events.

Triggers the afterFilter and afterDispatch events.

Returns

Cake\Http\Response
The response to serve.

_template()source protected

_template( Exception $exception , string $method , integer $code )

Get template for rendering exception info.

Parameters

Exception $exception
Exception instance.
string $method
Method name.
integer $code
Error code.

Returns

string
Template name

_unwrap()source protected

_unwrap( Exception $exception )

Returns the unwrapped exception object in case we are dealing with a PHP 7 Error object

Parameters

Exception $exception
The object to unwrap

Returns

Exception|Error

render()source public

render( )

Renders the response for the exception.

Returns

Cake\Http\Response
The response to be sent.

Implementation of

Cake\Error\ExceptionRendererInterface::render()

Properties detail

$controllersource

protected Cake\Controller\Controller

Controller instance.

$errorsource

protected Exception

The exception being handled.

$methodsource

protected string

The method corresponding to the Exception this object is for.

''

$requestsource

protected Cake\Http\ServerRequest|null

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

null

$templatesource

protected string

Template to render for Cake\Core\Exception\Exception

''

© 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/3.8/class-Cake.Error.ExceptionRenderer.html