Handler
class Handler implements ExceptionHandler
Traits
Constants
| REPORTED_EXCEPTION_MAP_CONTEXT_KEY |
Context key for the per-request reported exception deduplication map. |
| AFTER_RESPONSE_CONTEXT_KEY |
Context key for after-response callbacks. |
| CURRENTLY_REPORTING_CONTEXT_KEY |
Context key for the exception currently being reported. |
Properties
| protected Throwable>> | $dontReport | A list of the exception types that are not reported. |
|
| protected ReportableHandler[] | $reportCallbacks | The callbacks that should be used during reporting. |
|
| protected array | $contextCallbacks | The callbacks that should be used to build exception context data. |
|
| protected Closure[] | $dontReportCallbacks | The callbacks that should be used to determine if an exception should not be reported. |
|
| protected Throwable>> | $dontRetry | A list of the exception types that should stop job retries. |
|
| protected Closure> | $dontRetryCallbacks | The callbacks that inspect exceptions to determine if they should stop job retries. |
|
| protected Closure[] | $throttleCallbacks | The callbacks that should be used to throttle reportable exceptions. |
|
| protected Closure[] | $renderCallbacks | The callbacks that should be used during rendering. |
|
| protected null|callable | $shouldRenderJsonWhenCallback | The callback that determines if the exception handler response should be JSON. |
|
| protected null|callable | $finalizeResponseCallback | The callback that prepares responses to be returned to the browser. |
|
| protected Request): mixed> | $beforeRespondingCallbacks | The callbacks invoked before final response customization. |
|
| protected Closure> | $exceptionMap | The registered exception mappings. |
|
| protected LogLevel::*> | $levels | A map of exceptions with their corresponding custom log levels. |
|
| protected RequestExceptionInterface>|Throwable>> | $internalDontReport | A list of the internal exception types that should not be reported. |
|
| protected array<int, string> | $dontFlash | A list of the inputs that are never flashed for validation exceptions. |
|
| protected bool | $withoutDuplicates | Indicate that an exception instance should only be reported once. |
Methods
Get the class name of the first parameter of the given Closure.
Get the class names of the first parameter of the given Closure, including union types.
Get the class names / types of the parameters of the given Closure.
Get the class names / types of the return type of the given Closure.
Register the exception handling callbacks for the application.
Register a reportable callback.
Register a renderable callback.
Indicate that the given exception type should not be reported.
Register a callback to determine if an exception should not be reported.
Indicate that the given exception type should not be reported.
Indicate that jobs should stop retrying for the given exception types.
Register a callback to determine if jobs should stop retrying for an exception.
Indicate that the given attributes should never be flashed to the session on validation errors.
Report error based on report method on exception or to logger.
Run the callback while the given exception is marked as being reported by this coroutine.
Get the reporting decisions for the current request.
Specify the callback that should be used to throttle reportable exceptions.
Remove the given exception class from the list of exceptions that should be ignored.
Create the context array for logging the given exception.
Get the default context variables for logging.
Register a closure that should be used to build exception context data.
Prepare the final, rendered response to be returned to the browser.
Register a callback before final exception response customization.
Register a callback to be called after an HTTP error response is rendered.
Get the callbacks that should be called after an HTTP error response is rendered.
Prepare the final, rendered response for an exception using the given callback.
Try to render a response from request and exception via render callbacks.
Convert an authentication exception into a response.
Create a response object from the given validation exception.
Convert a validation exception into a response.
Convert a validation exception into a JSON response.
Determine if the exception handler response should be JSON.
Register the callable that determines if the exception handler response should be JSON.
Render an exception to a string using the registered ExceptionRenderer.
Render an exception to a string using Symfony.
Render the given HttpException.
Register the error template hint paths.
Get the view used to render HTTP exceptions.
Map the given exception into a Hypervel response.
Prepare a JSON response for the given exception.
Do not report duplicate exceptions.
Create a new logger instance.
Details
in
ReflectsClosures at line 26
protected string
firstClosureParameterType(Closure $closure)
Get the class name of the first parameter of the given Closure.
in
ReflectsClosures at line 49
protected array
firstClosureParameterTypes(Closure $closure)
Get the class names of the first parameter of the given Closure, including union types.
in
ReflectsClosures at line 75
protected array
closureParameterTypes(Closure $closure)
Get the class names / types of the parameters of the given Closure.
in
ReflectsClosures at line 97
protected array
closureReturnTypes(Closure $closure)
Get the class names / types of the return type of the given Closure.
at line 218
__construct(Container $container)
Create a new exception handler instance.
at line 227
void
register()
Register the exception handling callbacks for the application.
at line 240
ReportableHandler
reportable(callable $reportUsing)
Register a reportable callback.
The callback receives exceptions matching its first parameter type, along with the exception's log context. Returning false stops further reporting.
The callback persists on the shared handler and affects exception reporting for every subsequent request and job in the worker.
at line 260
Handler
renderable(callable $renderUsing)
Register a renderable callback.
The callback persists on the shared handler and affects exception rendering for every subsequent request in the worker.
at line 282
Handler
map(callable|string $from, Closure|string|null $to = null)
Register a new exception mapping.
The mapping persists on the shared handler and affects exception reporting and rendering for every subsequent request and job in the worker.
at line 312
Handler
dontReport(array|string $exceptions)
Indicate that the given exception type should not be reported.
Alias of "ignore".
The exception types persist on the shared handler and affect exception reporting for every subsequent request and job in the worker.
at line 327
Handler
dontReportWhen(callable $dontReportWhen)
Register a callback to determine if an exception should not be reported.
The callback persists on the shared handler and affects exception reporting for every subsequent request and job in the worker.
at line 347
Handler
ignore(array|string $exceptions)
Indicate that the given exception type should not be reported.
The exception types persist on the shared handler and affect exception reporting for every subsequent request and job in the worker.
at line 365
Handler
dontRetry(array|string $exceptions)
Indicate that jobs should stop retrying for the given exception types.
The exception types persist on the shared handler and affect every subsequently failed job in the worker.
at line 386
Handler
dontRetryWhen(callable $dontRetryWhen)
Register a callback to determine if jobs should stop retrying for an exception.
The callback persists on the shared handler and affects job retry decisions for every subsequent job in the worker.
at line 401
bool
shouldStopRetries(Throwable $e)
Determine if jobs should stop retrying for the given exception.
at line 463
Handler
dontFlash(array|string $attributes)
Indicate that the given attributes should never be flashed to the session on validation errors.
The attributes persist on the shared handler and are omitted from every subsequent validation redirect in the worker.
at line 483
Handler
level(string $type, string $level)
Set the log level for the given exception type.
The level persists on the shared handler and affects how later exceptions of that type are logged in the worker.
at line 499
void
report(Throwable $e, array $context = [], string|null $level = null)
Report or log an exception.
at line 543
protected void
reportThrowable(Throwable $e, array $context = [], string|null $level = null)
Report error based on report method on exception or to logger.
at line 590
protected mixed
whileReporting(Throwable $e, Closure $callback)
Run the callback while the given exception is marked as being reported by this coroutine.
at line 612
bool
isReporting(Throwable $e)
Determine if the given exception is being reported by this coroutine.
at line 624
protected void
reportedException(Throwable $e)
Mark the given exception as reported.
at line 632
protected bool
hasReportedException(Throwable $e)
Determine if the given exception has already been reported.
at line 644
protected WeakMap
reportedExceptionMap()
Get the reporting decisions for the current request.
True records an accepted exception; false records a rejected cancellation chain.
at line 659
bool
shouldReport(Throwable $e)
Determine if the exception should be reported.
at line 668
protected bool
shouldntReport(Throwable $e)
Determine if the exception is in the "do not report" list.
at line 718
protected Lottery|AdmissionPolicy|null
throttle(Throwable $e)
Throttle the given exception.
at line 743
Handler
throttleUsing(callable $throttleUsing)
Specify the callback that should be used to throttle reportable exceptions.
The callback persists on the shared handler and affects exception reporting for every subsequent request and job in the worker.
at line 763
Handler
stopIgnoring(array|string $exceptions)
Remove the given exception class from the list of exceptions that should be ignored.
The exception lists persist on the shared handler and affect exception reporting for every subsequent request and job in the worker.
at line 784
array
contextForException(Throwable $e)
Create the context array for logging the given exception.
at line 794
protected array
buildExceptionContext(Throwable $e, array $context = [])
Create the context array for logging the given exception.
at line 809
array
buildContextForException(Throwable $e)
Create the context for the given exception.
at line 817
protected array
exceptionContext(Throwable $e)
Get the default exception context variables for logging.
at line 835
protected array
context()
Get the default context variables for logging.
at line 859
Handler
buildContextUsing(Closure $contextCallback)
Register a closure that should be used to build exception context data.
The closure persists on the shared handler and runs for every subsequently logged exception in the worker.
at line 872
Response
render(Request $request, Throwable $e)
Render an exception into an HTTP response.
at line 909
protected Response
finalizeRenderedResponse(Request $request, Response $response, Throwable $e)
Prepare the final, rendered response to be returned to the browser.
at line 937
Handler
beforeResponding(callable $callback)
Register a callback before final exception response customization.
The callback is shared by every request in the worker. Callback return values are ignored.
at line 948
void
afterResponse(callable $callback)
Register a callback to be called after an HTTP error response is rendered.
at line 961
protected array
afterResponseCallbacks()
Get the callbacks that should be called after an HTTP error response is rendered.
at line 974
Handler
respondUsing(callable $callback)
Prepare the final, rendered response for an exception using the given callback.
The callback replaces the shared handler's response callback for every subsequent request in the worker.
at line 1008
protected Throwable
mapException(Throwable $e)
Map the exception using a registered mapper if possible.
at line 1028
protected Response|null
renderViaCallbacks(Request $request, Throwable $e)
Try to render a response from request and exception via render callbacks.
at line 1046
protected Response|JsonResponse|RedirectResponse
renderExceptionResponse(Request $request, Throwable $e)
Render a default exception response if any.
at line 1056
protected Response|JsonResponse|RedirectResponse
unauthenticated(Request $request, AuthenticationException $exception)
Convert an authentication exception into a response.
at line 1074
protected Response
convertValidationExceptionToResponse(ValidationException $e, Request $request)
Create a response object from the given validation exception.
at line 1088
protected RedirectResponse
invalid(Request $request, ValidationException $exception)
Convert a validation exception into a response.
at line 1105
protected JsonResponse
invalidJson(Request $request, ValidationException $exception)
Convert a validation exception into a JSON response.
at line 1116
protected bool
shouldReturnJson(Request $request, Throwable $e)
Determine if the exception handler response should be JSON.
at line 1132
Handler
shouldRenderJsonWhen(callable $callback)
Register the callable that determines if the exception handler response should be JSON.
The callable replaces the shared handler's JSON check for every subsequent request in the worker.
at line 1143
protected Response|RedirectResponse
prepareResponse(Request $request, Throwable $e)
Prepare a response for the given exception.
at line 1162
protected Response
convertExceptionToResponse(Throwable $e)
Create a Symfony response for the given exception.
at line 1174
protected string
renderExceptionContent(Throwable $e)
Get the response content for the given exception.
at line 1199
protected string
renderExceptionWithCustomRenderer(Throwable $e)
Render an exception to a string using the registered ExceptionRenderer.
at line 1207
protected string
renderExceptionWithSymfony(Throwable $e, bool $debug)
Render an exception to a string using Symfony.
at line 1219
protected Response
renderHttpException(HttpExceptionInterface $e)
Render the given HttpException.
at line 1251
protected void
registerErrorViewPaths()
Register the error template hint paths.
at line 1259
protected string|null
getHttpExceptionView(HttpExceptionInterface $e)
Get the view used to render HTTP exceptions.
at line 1279
protected Response|RedirectResponse
toHypervelResponse(Response $response, Throwable $e)
Map the given exception into a Hypervel response.
at line 1301
protected JsonResponse
prepareJsonResponse(Request $request, Throwable $e)
Prepare a JSON response for the given exception.
at line 1314
protected array
convertExceptionToArray(Throwable $e)
Convert the given exception to an array.
at line 1330
void
renderForConsole(OutputInterface $output, Throwable $e)
Render an exception to the console.
at line 1364
Handler
dontReportDuplicates()
Do not report duplicate exceptions.
The setting persists on the shared handler and applies to every subsequent request and job in the worker.
at line 1377
protected bool
isHttpException(Throwable $e)
Determine if the given exception is an HTTP exception.
at line 1387
protected string
mapLogLevel(Throwable $e)
Map the exception to a log level.
at line 1399
protected LoggerInterface
newLogger()
Create a new logger instance.