reactor-core/src/main/java/reactor/core/publisher/Hooks.java
public static void onOperatorError(String key, BiFunction<? super Throwable, Object, ? extends Throwable> onOperatorError) {
		Objects.requireNonNull(key, "key");
		Objects.requireNonNull(onOperatorError, "onOperatorError");
		log.debug("Hooking onOperatorError: {}", key);
		synchronized (log) {
			onOperatorErrorHooks.put(key, onOperatorError);
			onOperatorErrorHook = createOrUpdateOpErrorHook(onOperatorErrorHooks.values());
		}
	}
public static void onOperatorError(String key, BiFunction<? super Throwable, Object, ? extends Throwable> onOperatorError) {
		Objects.requireNonNull(key, "key");
		Objects.requireNonNull(onOperatorError, "onOperatorError");
		log.debug("Hooking onOperatorError: {}", key);
		synchronized (log) {
			onOperatorErrorHooks.put(key, onOperatorError);
			onOperatorErrorHook = createOrUpdateOpErrorHook(onOperatorErrorHooks.values());
		}
	}
Add or replace a named custom error mapping, overriding the default one. Custom
mapping can be an accumulation of several sub-hooks each subsequently added via this
method.
<p>
Note that invoking this method twice with the same key will replace the old sub-hook
with that name, but keep the execution order (eg. A-h1, B-h2, A-h3 will keep A-B
execution order, leading to hooks h3 then h2 being executed). Removing a particular
key using {@link #resetOnOperatorError(String)} then adding it back will result in
the execution order changing (the later sub-hook being executed last).
Can be fully reset via {@link #resetOnOperatorError()}.
<p>
For reference, the default mapping is to unwrap the exception and, if the second
parameter is another exception, to add it to the first as a suppressed.

@param key the key for the sub-hook to add/replace
@param onOperatorError an operator error {@link BiFunction} mapper, returning an arbitrary exception
given the failure and optionally some original context (data or error).

@see #onOperatorError(String, BiFunction)
@see #resetOnOperatorError(String)
@see #resetOnOperatorError()