本文整理了Java中reactor.core.Exceptions.throwIfFatal()
方法的一些代码示例,展示了Exceptions.throwIfFatal()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Exceptions.throwIfFatal()
方法的具体详情如下:
包路径:reactor.core.Exceptions
类名称:Exceptions
方法名:throwIfFatal
[英]Throws a particular Throwable only if it belongs to a set of "fatal" error varieties. These varieties are as follows:
代码示例来源:origin: reactor/reactor-core
@Override
public Throwable process(Throwable error, @Nullable Object value, Context context) {
Exceptions.throwIfFatal(error);
Throwable iee = new IllegalStateException("STOP strategy cannot process errors");
iee.addSuppressed(error);
return iee;
}
};
代码示例来源:origin: reactor/reactor-core
@Override
public void run() {
if (!disposed) {
try {
run.run();
}
catch (Throwable ex) {
Exceptions.throwIfFatal(ex);
throw Exceptions.propagate(ex);
}
}
}
代码示例来源:origin: reactor/reactor-core
/**
* Prepare an unchecked {@link RuntimeException} that will bubble upstream if thrown
* by an operator. <p>This method invokes {@link #throwIfFatal(Throwable)}.
*
* @param t the root cause
*
* @return an unchecked exception that should choose bubbling up over error callback
* path
*/
public static RuntimeException bubble(Throwable t) {
throwIfFatal(t);
return new BubblingException(t);
}
代码示例来源:origin: reactor/reactor-core
/**
* Prepare an unchecked {@link RuntimeException} that should be propagated
* downstream through {@link org.reactivestreams.Subscriber#onError(Throwable)}.
* <p>This method invokes {@link #throwIfFatal(Throwable)}.
*
* @param t the root cause
*
* @return an unchecked exception to propagate through onError signals.
*/
public static RuntimeException propagate(Throwable t) {
throwIfFatal(t);
if (t instanceof RuntimeException) {
return (RuntimeException) t;
}
return new ReactiveException(t);
}
代码示例来源:origin: reactor/reactor-core
void runFinally(SignalType signalType) {
if (ONCE.compareAndSet(this, 0, 1)) {
try {
onFinally.accept(signalType);
} catch (Throwable ex) {
Exceptions.throwIfFatal(ex);
Operators.onErrorDropped(ex, actual.currentContext());
}
}
}
代码示例来源:origin: reactor/reactor-core
@Override
@Nullable
public Throwable process(Throwable error, @Nullable Object value, Context context) {
if (errorPredicate == null) {
Exceptions.throwIfFatal(error);
}
else if (!errorPredicate.test(error)) {
Exceptions.throwIfFatal(error);
return error;
}
try {
errorConsumer.accept(error, value);
return null;
}
catch (Throwable e) {
e.addSuppressed(error);
return e;
}
}
}
代码示例来源:origin: reactor/reactor-core
@Override
public final void onNext(T x) {
try {
if (consumer != null) {
consumer.accept(x);
}
}
catch (Throwable t) {
Exceptions.throwIfFatal(t);
this.subscription.cancel();
onError(t);
}
}
代码示例来源:origin: reactor/reactor-core
@Override
@Nullable
public Throwable process(Throwable error, @Nullable Object value, Context context) {
if (errorPredicate == null) {
Exceptions.throwIfFatal(error);
}
else if (!errorPredicate.test(error)) {
Exceptions.throwIfFatal(error);
return error;
}
try {
if (value != null) {
Operators.onNextDropped(value, context);
}
Operators.onErrorDropped(error, context);
return null;
}
catch (Throwable e) {
e.addSuppressed(error);
return e;
}
}
}
代码示例来源:origin: reactor/reactor-core
@Override
public final void onSubscribe(Subscription s) {
if (Operators.validate(subscription, s)) {
this.subscription = s;
if (subscriptionConsumer != null) {
try {
subscriptionConsumer.accept(s);
}
catch (Throwable t) {
Exceptions.throwIfFatal(t);
s.cancel();
onError(t);
}
}
else {
s.request(Long.MAX_VALUE);
}
}
}
代码示例来源:origin: reactor/reactor-core
@Override
public final void onSubscribe(Subscription s) {
if (Operators.validate(subscription, s)) {
this.subscription = s;
if (subscriptionConsumer != null) {
try {
subscriptionConsumer.accept(s);
}
catch (Throwable t) {
Exceptions.throwIfFatal(t);
s.cancel();
onError(t);
}
}
else {
s.request(Long.MAX_VALUE);
}
}
}
代码示例来源:origin: reactor/reactor-core
/**
* Common method for FluxPeek and FluxPeekFuseable to deal with a doAfterTerminate
* callback that fails during onComplete. It drops the error to the global hook.
* <ul>
* <li>The callback failure is thrown immediately if fatal.</li>
* <li>{@link Operators#onOperatorError(Throwable, Context)} is called</li>
* <li>{@link Operators#onErrorDropped(Throwable, Context)} is called</li>
* </ul>
* <p>
*
* @param parent the {@link SignalPeek} from which to get the callbacks
* @param callbackFailure the afterTerminate callback failure
* @param context subscriber context
*/
//see https://github.com/reactor/reactor-core/issues/270
static <T> void afterCompleteWithFailure(SignalPeek<T> parent,
Throwable callbackFailure, Context context) {
Exceptions.throwIfFatal(callbackFailure);
Throwable _e = Operators.onOperatorError(callbackFailure, context);
Operators.onErrorDropped(_e, context);
}
代码示例来源:origin: reactor/reactor-core
void dispose(@Nullable List<Disposable> set) {
if (set == null) {
return;
}
List<Throwable> errors = null;
for (Disposable o : set) {
try {
o.dispose();
} catch (Throwable ex) {
Exceptions.throwIfFatal(ex);
if (errors == null) {
errors = new ArrayList<>();
}
errors.add(ex);
}
}
if (errors != null) {
if (errors.size() == 1) {
throw Exceptions.propagate(errors.get(0));
}
throw Exceptions.multiple(errors);
}
}
代码示例来源:origin: reactor/reactor-core
/**
* Common method for FluxPeek and FluxPeekFuseable to deal with a doAfterTerminate
* callback that fails during onError. It drops the error to the global hook.
* <ul>
* <li>The callback failure is thrown immediately if fatal.</li>
* <li>{@link Operators#onOperatorError(Subscription, Throwable, Object, Context)} is
* called, adding the original error as suppressed</li>
* <li>{@link Operators#onErrorDropped(Throwable, Context)} is called</li>
* </ul>
* <p>
*
* @param parent the {@link SignalPeek} from which to get the callbacks
* @param callbackFailure the afterTerminate callback failure
* @param originalError the onError throwable
* @param context subscriber context
*/
//see https://github.com/reactor/reactor-core/issues/270
static <T> void afterErrorWithFailure(SignalPeek<T> parent,
Throwable callbackFailure, Throwable originalError, Context context) {
Exceptions.throwIfFatal(callbackFailure);
Throwable _e = Operators.onOperatorError(null, callbackFailure, originalError, context);
Operators.onErrorDropped(_e, context);
}
代码示例来源:origin: reactor/reactor-core
@Override
public void onNext(T t) {
produced++;
actual.onNext(t);
Publisher<? extends T> p;
try {
p = Objects.requireNonNull(expander.apply(t),
"The expander returned a null Publisher");
}
catch (Throwable ex) {
Exceptions.throwIfFatal(ex);
super.cancel();
actual.onError(ex);
drainQueue();
return;
}
queue.offer(p);
}
代码示例来源:origin: reactor/reactor-core
@Override
final public boolean isEmpty() {
try {
return qs.isEmpty();
}
catch (Throwable ex) {
Exceptions.throwIfFatal(ex);
throw Exceptions.propagate(fail(ex));
}
}
代码示例来源:origin: reactor/reactor-core
@Override
public final void onComplete() {
Subscription s = S.getAndSet(this, Operators.cancelledSubscription());
if (s == Operators.cancelledSubscription()) {
return;
}
if (completeConsumer != null) {
try {
completeConsumer.run();
}
catch (Throwable t) {
Exceptions.throwIfFatal(t);
onError(t);
}
}
}
代码示例来源:origin: reactor/reactor-core
void waitTaskEvent() {
Event<T> event;
while ((event = taskEvents.poll()) != null) {
try {
if (event instanceof SubscriptionTaskEvent) {
updateRequested(event);
}
((TaskEvent<T>) event).run(this);
}
catch (Throwable t) {
Exceptions.throwIfFatal(t);
cancel();
if (t instanceof AssertionError) {
throw (AssertionError) t;
}
throw Exceptions.propagate(t);
}
}
}
代码示例来源:origin: reactor/reactor-core
@Override
@Nullable
final public T poll() {
try {
return qs.poll();
}
catch (final Throwable ex) {
Exceptions.throwIfFatal(ex);
throw Exceptions.propagate(fail(ex));
}
}
}
代码示例来源:origin: reactor/reactor-core
@Override
public void subscribe(CoreSubscriber<? super T> actual) {
BaseSink<T> sink = createSink(actual, backpressure);
actual.onSubscribe(sink);
try {
source.accept(
createMode == CreateMode.PUSH_PULL ? new SerializedSink<>(sink) :
sink);
}
catch (Throwable ex) {
Exceptions.throwIfFatal(ex);
sink.error(Operators.onOperatorError(ex, actual.currentContext()));
}
}
代码示例来源:origin: reactor/reactor-core
@Override
public void onNext(T t) {
if (done || cancelled) {
Operators.onNextDropped(t, currentContext());
return;
}
if (!queue.offer(t)) {
Throwable ex = Operators.onOperatorError(null,
Exceptions.failWithOverflow(), t, currentContext());
if(onOverflow != null) {
try {
onOverflow.accept(t);
}
catch (Throwable e) {
Exceptions.throwIfFatal(e);
ex.initCause(e);
}
}
onError(Operators.onOperatorError(null, ex, t, currentContext()));
return;
}
drain();
}
内容来源于网络,如有侵权,请联系作者删除!