Laravel - Error Handling - Renderable Exceptions
Instead of type-checking exceptions in the exception handler's register
method, you may define report
and render
methods directly on your custom exceptions. When these methods exist, they will be automatically called by the framework:
If your exception extends an exception that is already renderable, such as a built-in Laravel or Symfony exception, you may return false
from the exception's render
method to render the exception's default HTTP response:
/**
* Render the exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function render($request)
{
// Determine if the exception needs custom rendering...
return false;
}
If your exception contains custom reporting logic that is only necessary when certain conditions are met, you may need to instruct Laravel to sometimes report the exception using the default exception handling configuration. To accomplish this, you may return false
from the exception's report
method:
/**
* Report the exception.
*
* @return bool|null
*/
public function report()
{
// Determine if the exception needs custom reporting...
return false;
}
You may type-hint any required dependencies of the report
method and they will automatically be injected into the method by Laravel's service container.