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
Properties summary
-
$controller
protectedController instance. -
$error
protectedException
The exception being handled. -
$method
protectedstring
The method corresponding to the Exception this object is for. -
$request
protectedIf set, this will be request used to create the controller that will render the error.
-
$template
protectedstring
Template to render for Cake\Core\Exception\Exception
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. -
_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. -
_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() 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() public ¶
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
__get() public ¶
__get( string $name )
Magic accessor for properties made protected.
Parameters
- string $name
- Name of the attribute to get.
Returns
__set() public ¶
__set( string $name , mixed $value )
Magic setter for properties made protected.
Parameters
- string $name
- Name to property.
- mixed $value
- Value for property.
_code() protected ¶
_code( Exception $exception )
Get HTTP status code.
Parameters
- Exception $exception
- Exception.
Returns
A valid HTTP error status code.
_customMethod() 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
_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
Triggers
_message() protected ¶
_message( Exception $exception , integer $code )
Get error message.
Parameters
- Exception $exception
- Exception.
- integer $code
- Error code.
Returns
Error message
_method() protected ¶
_method( Exception $exception )
Get method name
Parameters
- Exception $exception
- Exception instance.
Returns
_outputMessage() protected ¶
_outputMessage( string $template )
Generate the response using the controller object.
Parameters
- string $template
- The template to render.
Returns
_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
_shutdown() protected ¶
_shutdown( )
Run the shutdown events.
Triggers the afterFilter and afterDispatch events.
Returns
_template() 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
Template name
_unwrap() 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
Properties detail
$request ¶
Cake\Http\ServerRequest
|null
If set, this will be request used to create the controller that will render the error.
null