$_options
$_options : array
Options to use for the Error handling.
Error Handler provides basic error and exception handling for your application. It captures and handles all unhandled exceptions and errors. Displays helpful framework errors when debug > 1.
When debug < 1 a CakeException will render 404 or 500 errors. If an uncaught exception is thrown and it is a type that ErrorHandler does not know about it will be treated as a 500 error.
You can implement application specific exception handling in one of a few ways. Each approach gives you different amounts of control over the exception handling process.
exceptionRenderer
option to inject an Exception renderer. This will
let you keep the existing handling logic but override the rendering logic.This gives you full control over the exception handling process. The class you choose should be loaded in your config/error.php and registered as the default exception handler.
exceptionRenderer
If you don't want to take control of the exception handling, but want to change how exceptions are
rendered you can use exceptionRenderer
option to choose a class to render exception pages. By default
Cake\Error\ExceptionRenderer
is used. Your custom exception renderer class should be placed in src/Error.
Your custom renderer should expect an exception in its constructor, and implement a render method. Failing to do so will cause additional errors.
Using the built-in exception handling, you can log all the exceptions
that are dealt with by ErrorHandler by setting log
option to true in your config/error.php.
Enabling this will log every exception to Log and the configured loggers.
Error handler also provides the built in features for handling php errors (trigger_error).
While in debug mode, errors will be output to the screen using debugger. While in production mode,
errors will be logged to Log. You can control which errors are logged by setting
errorLevel
option in config/error.php.
When ErrorHandler is used for handling errors, you can enable error logging by setting the log
option to true. This will log all errors to the configured log handlers.
You can control which errors are logged / displayed by ErrorHandler by setting errorLevel
. Setting this
to one or a combination of a few of the E_* constants will only enable the specified errors:
$options['errorLevel'] = E_ALL & ~E_NOTICE;
Would enable handling for all non Notice errors.
handleError(integer $code, string $description, string|null $file = null, integer|null $line = null, array|null $context = null) : boolean
Set as the default error handler by CakePHP.
Use config/error.php to customize or replace this error handler. This function will use Debugger to display errors when debug > 0. And will log errors to Log, when debug == 0.
You can use the 'errorLevel' option to set what type of errors will be handled. Stack traces for errors can be enabled with the 'trace' option.
integer | $code | Code of error |
string | $description | Error description |
string|null | $file | File on which error occurred |
integer|null | $line | Line that triggered the error |
array|null | $context | Context |
True if error was handled
wrapAndHandleException(\Exception|\Error $exception) : void
Checks the passed exception type. If it is an instance of `Error` then, it wraps the passed object inside another Exception object for backwards compatibility purposes.
\Exception|\Error | $exception | The exception to handle |
handleFatalError(integer $code, string $description, string $file, integer $line) : boolean
Display/Log a fatal error.
integer | $code | Code of error |
string | $description | Error description |
string | $file | File on which error occurred |
integer | $line | Line that triggered the error |
_displayException(\Exception $exception) : void
Displays an exception response body.
Subclasses should implement this method to display an uncaught exception as desired for the runtime they operate in.
\Exception | $exception | The exception to display. |
When the chosen exception renderer is invalid.
_requestContext(\Cake\Http\ServerRequest $request) : string
Get the request context for an error/exception trace.
\Cake\Http\ServerRequest | $request | The request to read from. |
_sendResponse(string|\Cake\Http\Response $response) : void
Method that can be easily stubbed in testing.
string|\Cake\Http\Response | $response | Either the message or response object. |