createExceptionInvoker

Creates an ExceptionInvoker for a method annotated with @ExceptionHandler.

This function inspects the reflective method to determine which supported exception-handler signature it uses, as defined by ExceptionSignatureKind. Supported shapes are:

  • (event: Event, throwable: Throwable)

  • (event: Event)

  • (throwable: Throwable)

Methods whose parameter lists do not match one of these shapes return null, allowing the subscriber-scanning logic to silently skip invalid handlers in a manner consistent with normal event handler discovery.

Invocation Strategy

When a method is valid, the event system attempts to generate a high-performance lambda via LambdaMetafactory. If this fails—for example due to module visibility, lookup access rules, or JVM restrictions—the system logs the failure and falls back to a reflective invoker.

The returned invoker is specific to:

  • signature shape (event only, throwable only, or event + throwable)

  • context (instance handler vs static handler)

This ensures that exception dispatch can uniformly invoke handlers without performing reflective analysis at runtime.

Return Value

  • Returns a fully constructed ExceptionInvoker for valid exception handler methods.

  • Returns null when the method's signature does not match any permitted @ExceptionHandler shape.

Return

a compiled or reflective ExceptionInvoker, or null if the method is not a valid exception handler.

Parameters

method

the reflective method to convert into an exception-handler invoker.