reactor-core/src/main/java/reactor/core/publisher/Operators.java
@Nullable
	public static <T> RuntimeException onNextPollError(T value, Throwable error, Context context) {
		error = unwrapOnNextError(error);
		OnNextFailureStrategy strategy = onNextErrorStrategy(context);
		if (strategy.test(error, value)) {
			//some strategies could still return an exception, eg. if the consumer throws
			Throwable t = strategy.process(error, value, context);
			if (t != null) return Exceptions.propagate(t);
			return null;
		}
		else {
			Throwable t = onOperatorError(null, error, value, context);
			return Exceptions.propagate(t);
		}
	}
@Nullable
	public static <T> RuntimeException onNextPollError(T value, Throwable error, Context context) {
		error = unwrapOnNextError(error);
		OnNextFailureStrategy strategy = onNextErrorStrategy(context);
		if (strategy.test(error, value)) {
			//some strategies could still return an exception, eg. if the consumer throws
			Throwable t = strategy.process(error, value, context);
			if (t != null) return Exceptions.propagate(t);
			return null;
		}
		else {
			Throwable t = onOperatorError(null, error, value, context);
			return Exceptions.propagate(t);
		}
	}
Find the {@link OnNextFailureStrategy} to apply to the calling async operator (which could be
a local error mode defined in the {@link Context}) and apply it.
<p>
Returns a {@link RuntimeException} if errors are fatal for the error mode, in which
case the operator poll should throw the returned error. On the contrary if the
error mode allows the sequence to continue, returns {@code null} in which case
the operator should retry the {@link Queue#poll() poll()}.

@param value The onNext value that caused an error.
@param error The error.
@param context The most significant {@link Context} in which to look for an {@link OnNextFailureStrategy}.
@param <T> The type of the value causing the error.
@return a {@link Throwable} to propagate through onError if the strategy is
terminal and cancelled the subscription, null if not.