public <T extends Throwable> @This @NonNull ExceptionController<C> registerHandler(
            final @NonNull TypeToken<T> exceptionType,
            final @NonNull ExceptionHandler<C, ? extends T> exceptionHandler
    ) {
        return this.register(ExceptionHandlerRegistration.of(exceptionType, exceptionHandler));
    }
Registers the given {@code exceptionHandler}.
<p>
The ordering matters when multiple handlers are registered for the same exception type.
The last registered handler will get priority.

@param <T>              the exception type handled by the exception handler
@param exceptionType    the exception type handled by the exception handler
@param exceptionHandler the exception handler
@return {@code this} exception controller
cloud-core/src/main/java/org/incendo/cloud/exception/handling/ExceptionController.java