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 bool $hashThrottleKeys

Indicate that throttle keys should be hashed.

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 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

string
firstClosureParameterType(Closure $closure)

Get the class name of the first parameter of the given Closure.

array
firstClosureParameterTypes(Closure $closure)

Get the class names of the first parameter of the given Closure, including union types.

array
closureParameterTypes(Closure $closure)

Get the class names / types of the parameters of the given Closure.

array
closureReturnTypes(Closure $closure)

Get the class names / types of the return type of the given Closure.

__construct(Container $container)

Create a new exception handler instance.

void
register()

Register the exception handling callbacks for the application.

reportable(callable $reportUsing)

Register a reportable callback.

renderable(callable $renderUsing)

Register a renderable callback.

map(callable|string $from, Closure|string|null $to = null)

Register a new exception mapping.

dontReport(array|string $exceptions)

Indicate that the given exception type should not be reported.

dontReportWhen(callable $dontReportWhen)

Register a callback to determine if an exception should not be reported.

ignore(array|string $exceptions)

Indicate that the given exception type should not be reported.

dontRetry(array|string $exceptions)

Indicate that jobs should stop retrying for the given exception types.

dontRetryWhen(callable $dontRetryWhen)

Register a callback to determine if jobs should stop retrying for an exception.

bool
shouldStopRetries(Throwable $e)

Determine if jobs should stop retrying for the given exception.

dontFlash(array|string $attributes)

Indicate that the given attributes should never be flashed to the session on validation errors.

level(string $type, string $level)

Set the log level for the given exception type.

void
report(Throwable $e)

Report or log an exception.

void
reportThrowable(Throwable $e)

Report error based on report method on exception or to logger.

bool
isReporting(Throwable $e)

Determine if the given exception is being reported by this coroutine.

void
reportedException(Throwable $e)

Mark the given exception as reported.

bool
hasReportedException(Throwable $e)

Determine if the given exception has already been reported.

WeakMap
reportedExceptionMap()

Get the reported exception map for the current request.

bool
shouldReport(Throwable $e)

Determine if the exception should be reported.

bool
shouldntReport(Throwable $e)

Determine if the exception is in the "do not report" list.

Lottery|Limit|null
throttle(Throwable $e)

Throttle the given exception.

throttleUsing(callable $throttleUsing)

Specify the callback that should be used to throttle reportable exceptions.

stopIgnoring(array|string $exceptions)

Remove the given exception class from the list of exceptions that should be ignored.

array
buildExceptionContext(Throwable $e)

Create the context array for logging the given exception.

array
buildContextForException(Throwable $e)

Create the context for the given exception.

array
exceptionContext(Throwable $e)

Get the default exception context variables for logging.

array
context()

Get the default context variables for logging.

buildContextUsing(Closure $contextCallback)

Register a closure that should be used to build exception context data.

Response
render(Request $request, Throwable $e)

Render an exception into an HTTP response.

Response
finalizeRenderedResponse(Request $request, Response $response, Throwable $e)

Prepare the final, rendered response to be returned to the browser.

void
afterResponse(callable $callback)

Register a callback to be called after an HTTP error response is rendered.

array
afterResponseCallbacks()

Get the callbacks that should be called after an HTTP error response is rendered.

respondUsing(callable $callback)

Prepare the final, rendered response for an exception using the given callback.

prepareException(Throwable $e)

Prepare exception for rendering.

mapException(Throwable $e)

Map the exception using a registered mapper if possible.

Response|null
renderViaCallbacks(Request $request, Throwable $e)

Try to render a response from request and exception via render callbacks.

renderExceptionResponse(Request $request, Throwable $e)

Render a default exception response if any.

unauthenticated(Request $request, AuthenticationException $exception)

Convert an authentication exception into a response.

Response
convertValidationExceptionToResponse(ValidationException $e, Request $request)

Create a response object from the given validation exception.

invalid(Request $request, ValidationException $exception)

Convert a validation exception into a response.

invalidJson(Request $request, ValidationException $exception)

Convert a validation exception into a JSON response.

bool
shouldReturnJson(Request $request, Throwable $e)

Determine if the exception handler response should be JSON.

shouldRenderJsonWhen(callable $callback)

Register the callable that determines if the exception handler response should be JSON.

prepareResponse(Request $request, Throwable $e)

Prepare a response for the given exception.

Response
convertExceptionToResponse(Throwable $e)

Create a Symfony response for the given exception.

string
renderExceptionContent(Throwable $e)

Get the response content for the given exception.

string
renderExceptionWithCustomRenderer(Throwable $e)

Render an exception to a string using the registered ExceptionRenderer.

string
renderExceptionWithSymfony(Throwable $e, bool $debug)

Render an exception to a string using Symfony.

Response
renderHttpException(HttpExceptionInterface $e)

Render the given HttpException.

void
registerErrorViewPaths()

Register the error template hint paths.

string|null
getHttpExceptionView(HttpExceptionInterface $e)

Get the view used to render HTTP exceptions.

toHypervelResponse(Response $response, Throwable $e)

Map the given exception into a Hypervel response.

prepareJsonResponse(Request $request, Throwable $e)

Prepare a JSON response for the given exception.

array
convertExceptionToArray(Throwable $e)

Convert the given exception to an array.

void
renderForConsole(OutputInterface $output, Throwable $e)

Render an exception to the console.

dontReportDuplicates()

Do not report duplicate exceptions.

bool
isHttpException(Throwable $e)

Determine if the given exception is an HTTP exception.

string
mapLogLevel(Throwable $e)

Map the exception to a log level.

LoggerInterface
newLogger()

Create a new logger instance.

Details

in ReflectsClosures at line 25
protected string firstClosureParameterType(Closure $closure)

Get the class name of the first parameter of the given Closure.

Parameters

Closure $closure

Return Value

string

Exceptions

ReflectionException
RuntimeException

in ReflectsClosures at line 48
protected array firstClosureParameterTypes(Closure $closure)

Get the class names of the first parameter of the given Closure, including union types.

Parameters

Closure $closure

Return Value

array

Exceptions

ReflectionException
RuntimeException

in ReflectsClosures at line 74
protected array closureParameterTypes(Closure $closure)

Get the class names / types of the parameters of the given Closure.

Parameters

Closure $closure

Return Value

array

Exceptions

ReflectionException

in ReflectsClosures at line 94
protected array closureReturnTypes(Closure $closure)

Get the class names / types of the return type of the given Closure.

Parameters

Closure $closure

Return Value

array

Exceptions

ReflectionException

at line 215
__construct(Container $container)

Create a new exception handler instance.

Parameters

Container $container

at line 224
void register()

Register the exception handling callbacks for the application.

Return Value

void

at line 231
ReportableHandler reportable(callable $reportUsing)

Register a reportable callback.

Parameters

callable $reportUsing

Return Value

ReportableHandler

at line 245
Handler renderable(callable $renderUsing)

Register a renderable callback.

Parameters

callable $renderUsing

Return Value

Handler

at line 261
Handler map(callable|string $from, Closure|string|null $to = null)

Register a new exception mapping.

Parameters

callable|string $from
Closure|string|null $to

Return Value

Handler

Exceptions

InvalidArgumentException

at line 285
Handler dontReport(array|string $exceptions)

Indicate that the given exception type should not be reported.

Alias of "ignore".

Parameters

array|string $exceptions

Return Value

Handler

at line 295
Handler dontReportWhen(callable $dontReportWhen)

Register a callback to determine if an exception should not be reported.

Parameters

callable $dontReportWhen

Return Value

Handler

at line 309
Handler ignore(array|string $exceptions)

Indicate that the given exception type should not be reported.

Parameters

array|string $exceptions

Return Value

Handler

at line 324
Handler dontRetry(array|string $exceptions)

Indicate that jobs should stop retrying for the given exception types.

Boot-only. The exception types persist on the shared handler and affect every subsequently failed job in the worker.

Parameters

array|string $exceptions

Return Value

Handler

at line 343
Handler dontRetryWhen(callable $dontRetryWhen)

Register a callback to determine if jobs should stop retrying for an exception.

Boot-only. The callback persists on the shared handler and is considered for every subsequently failed job in the worker.

Parameters

callable $dontRetryWhen

Return Value

Handler

at line 357
bool shouldStopRetries(Throwable $e)

Determine if jobs should stop retrying for the given exception.

Parameters

Throwable $e

Return Value

bool

at line 414
Handler dontFlash(array|string $attributes)

Indicate that the given attributes should never be flashed to the session on validation errors.

Parameters

array|string $attributes

Return Value

Handler

at line 429
Handler level(string $type, string $level)

Set the log level for the given exception type.

Parameters

string $type
string $level

Return Value

Handler

at line 441
void report(Throwable $e)

Report or log an exception.

Parameters

Throwable $e

Return Value

void

Exceptions

Throwable

at line 457
protected void reportThrowable(Throwable $e)

Report error based on report method on exception or to logger.

Parameters

Throwable $e

Return Value

void

Exceptions

Throwable

at line 507
bool isReporting(Throwable $e)

Determine if the given exception is being reported by this coroutine.

Parameters

Throwable $e

Return Value

bool

at line 519
protected void reportedException(Throwable $e)

Mark the given exception as reported.

Parameters

Throwable $e

Return Value

void

at line 527
protected bool hasReportedException(Throwable $e)

Determine if the given exception has already been reported.

Parameters

Throwable $e

Return Value

bool

at line 535
protected WeakMap reportedExceptionMap()

Get the reported exception map for the current request.

Return Value

WeakMap

at line 550
bool shouldReport(Throwable $e)

Determine if the exception should be reported.

Parameters

Throwable $e

Return Value

bool

at line 558
protected bool shouldntReport(Throwable $e)

Determine if the exception is in the "do not report" list.

Parameters

Throwable $e

Return Value

bool

at line 601
protected Lottery|Limit|null throttle(Throwable $e)

Throttle the given exception.

Parameters

Throwable $e

Return Value

Lottery|Limit|null

at line 621
Handler throttleUsing(callable $throttleUsing)

Specify the callback that should be used to throttle reportable exceptions.

Parameters

callable $throttleUsing

Return Value

Handler

at line 635
Handler stopIgnoring(array|string $exceptions)

Remove the given exception class from the list of exceptions that should be ignored.

Parameters

array|string $exceptions

Return Value

Handler

at line 655
protected array buildExceptionContext(Throwable $e)

Create the context array for logging the given exception.

Parameters

Throwable $e

Return Value

array

at line 669
array buildContextForException(Throwable $e)

Create the context for the given exception.

Parameters

Throwable $e

Return Value

array

at line 677
protected array exceptionContext(Throwable $e)

Get the default exception context variables for logging.

Parameters

Throwable $e

Return Value

array

at line 695
protected array context()

Get the default context variables for logging.

Return Value

array

at line 709
Handler buildContextUsing(Closure $contextCallback)

Register a closure that should be used to build exception context data.

Parameters

Closure $contextCallback

Return Value

Handler

at line 721
Response render(Request $request, Throwable $e)

Render an exception into an HTTP response.

Parameters

Request $request
Throwable $e

Return Value

Response

Exceptions

Throwable

at line 754
protected Response finalizeRenderedResponse(Request $request, Response $response, Throwable $e)

Prepare the final, rendered response to be returned to the browser.

Parameters

Request $request
Response $response
Throwable $e

Return Value

Response

at line 772
void afterResponse(callable $callback)

Register a callback to be called after an HTTP error response is rendered.

Parameters

callable $callback

Return Value

void

at line 785
protected array afterResponseCallbacks()

Get the callbacks that should be called after an HTTP error response is rendered.

Return Value

array

at line 793
Handler respondUsing(callable $callback)

Prepare the final, rendered response for an exception using the given callback.

Parameters

callable $callback

Return Value

Handler

at line 803
protected Throwable prepareException(Throwable $e)

Prepare exception for rendering.

Parameters

Throwable $e

Return Value

Throwable

at line 826
protected Throwable mapException(Throwable $e)

Map the exception using a registered mapper if possible.

Parameters

Throwable $e

Return Value

Throwable

at line 846
protected Response|null renderViaCallbacks(Request $request, Throwable $e)

Try to render a response from request and exception via render callbacks.

Parameters

Request $request
Throwable $e

Return Value

Response|null

at line 864
protected Response|JsonResponse|RedirectResponse renderExceptionResponse(Request $request, Throwable $e)

Render a default exception response if any.

Parameters

Request $request
Throwable $e

Return Value

Response|JsonResponse|RedirectResponse

at line 874
protected Response|JsonResponse|RedirectResponse unauthenticated(Request $request, AuthenticationException $exception)

Convert an authentication exception into a response.

Parameters

Request $request
AuthenticationException $exception

Return Value

Response|JsonResponse|RedirectResponse

at line 892
protected Response convertValidationExceptionToResponse(ValidationException $e, Request $request)

Create a response object from the given validation exception.

Parameters

ValidationException $e
Request $request

Return Value

Response

at line 906
protected RedirectResponse invalid(Request $request, ValidationException $exception)

Convert a validation exception into a response.

Parameters

Request $request
ValidationException $exception

Return Value

RedirectResponse

at line 921
protected JsonResponse invalidJson(Request $request, ValidationException $exception)

Convert a validation exception into a JSON response.

Parameters

Request $request
ValidationException $exception

Return Value

JsonResponse

at line 932
protected bool shouldReturnJson(Request $request, Throwable $e)

Determine if the exception handler response should be JSON.

Parameters

Request $request
Throwable $e

Return Value

bool

at line 944
Handler shouldRenderJsonWhen(callable $callback)

Register the callable that determines if the exception handler response should be JSON.

Parameters

callable $callback

Return Value

Handler

at line 954
protected Response|RedirectResponse prepareResponse(Request $request, Throwable $e)

Prepare a response for the given exception.

Parameters

Request $request
Throwable $e

Return Value

Response|RedirectResponse

at line 973
protected Response convertExceptionToResponse(Throwable $e)

Create a Symfony response for the given exception.

Parameters

Throwable $e

Return Value

Response

at line 985
protected string renderExceptionContent(Throwable $e)

Get the response content for the given exception.

Parameters

Throwable $e

Return Value

string

at line 1006
protected string renderExceptionWithCustomRenderer(Throwable $e)

Render an exception to a string using the registered ExceptionRenderer.

Parameters

Throwable $e

Return Value

string

at line 1014
protected string renderExceptionWithSymfony(Throwable $e, bool $debug)

Render an exception to a string using Symfony.

Parameters

Throwable $e
bool $debug

Return Value

string

at line 1026
protected Response renderHttpException(HttpExceptionInterface $e)

Render the given HttpException.

Parameters

HttpExceptionInterface $e

Return Value

Response

Exceptions

Throwable

at line 1054
protected void registerErrorViewPaths()

Register the error template hint paths.

Return Value

void

at line 1062
protected string|null getHttpExceptionView(HttpExceptionInterface $e)

Get the view used to render HTTP exceptions.

Parameters

HttpExceptionInterface $e

Return Value

string|null

at line 1082
protected Response|RedirectResponse toHypervelResponse(Response $response, Throwable $e)

Map the given exception into a Hypervel response.

Parameters

Response $response
Throwable $e

Return Value

Response|RedirectResponse

at line 1104
protected JsonResponse prepareJsonResponse(Request $request, Throwable $e)

Prepare a JSON response for the given exception.

Parameters

Request $request
Throwable $e

Return Value

JsonResponse

at line 1117
protected array convertExceptionToArray(Throwable $e)

Convert the given exception to an array.

Parameters

Throwable $e

Return Value

array

at line 1133
void renderForConsole(OutputInterface $output, Throwable $e)

Render an exception to the console.

Parameters

OutputInterface $output
Throwable $e

Return Value

void

at line 1158
Handler dontReportDuplicates()

Do not report duplicate exceptions.

Return Value

Handler

at line 1170
protected bool isHttpException(Throwable $e)

Determine if the given exception is an HTTP exception.

Parameters

Throwable $e

Return Value

bool

at line 1180
protected string mapLogLevel(Throwable $e)

Map the exception to a log level.

Parameters

Throwable $e

Return Value

string

at line 1192
protected LoggerInterface newLogger()

Create a new logger instance.

Return Value

LoggerInterface