reactor.core.Exceptions.addSuppressed()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(7.8k)|赞(0)|评价(0)|浏览(164)

本文整理了Java中reactor.core.Exceptions.addSuppressed()方法的一些代码示例,展示了Exceptions.addSuppressed()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Exceptions.addSuppressed()方法的具体详情如下:
包路径:reactor.core.Exceptions
类名称:Exceptions
方法名:addSuppressed

Exceptions.addSuppressed介绍

[英]Safely suppress a Throwable on a RuntimeException. The returned RuntimeException, bearing the suppressed exception, is most often the same as the original exception unless:

  • original and tentatively suppressed exceptions are one and the same: do nothing but return the original.
  • original is one of the singleton RejectedExecutionException created by Reactor: make a copy the RejectedExecutionException, add the suppressed exception to it and return that copy.
    [中]安全地抑制RuntimeException上的可丢弃性。返回的带有抑制异常的RuntimeException通常与原始异常相同,除非:
    *原始异常和暂时抑制的异常是同一个:只返回原始异常。
    *original是由Reactor创建的singleton RejectedExecutionException之一:复制RejectedExecutionException,将抑制的异常添加到其中并返回该副本。

代码示例

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable e) {
  done = true;
  RuntimeException rollbackError = new RuntimeException("Async resource cleanup failed after onError", e);
  parent.deferredError(Exceptions.addSuppressed(rollbackError, rollbackCause));
}

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable t) {
  if (eager && WIP.compareAndSet(this, 0, 1)) {
    try {
      resourceCleanup.accept(resource);
    }
    catch (Throwable e) {
      Throwable _e = Operators.onOperatorError(e, actual.currentContext());
      t = Exceptions.addSuppressed(_e, t);
    }
  }
  actual.onError(t);
  if (!eager && WIP.compareAndSet(this, 0, 1)) {
    cleanup();
  }
}

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable t) {
  if (eager && WIP.compareAndSet(this, 0, 1)) {
    try {
      resourceCleanup.accept(resource);
    }
    catch (Throwable e) {
      Throwable _e = Operators.onOperatorError(e, actual.currentContext());
      t = Exceptions.addSuppressed(_e, t);
    }
  }
  actual.onError(t);
  if (!eager && WIP.compareAndSet(this, 0, 1)) {
    cleanup();
  }
}

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable t) {
  if (eager && WIP.compareAndSet(this, 0, 1)) {
    try {
      resourceCleanup.accept(resource);
    }
    catch (Throwable e) {
      Throwable _e = Operators.onOperatorError(e, actual.currentContext());
      t = Exceptions.addSuppressed(_e, t);
    }
  }
  actual.onError(t);
  if (!eager && WIP.compareAndSet(this, 0, 1)) {
    cleanup();
  }
}

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable t) {
  if (CALLBACK_APPLIED.compareAndSet(this, 0, 1)) {
    Publisher<?> p;
    try {
      p = Objects.requireNonNull(asyncError.apply(resource),
          "The asyncError returned a null Publisher");
    }
    catch (Throwable e) {
      Throwable _e = Operators.onOperatorError(e, actual.currentContext());
      _e = Exceptions.addSuppressed(_e, t);
      actual.onError(_e);
      return;
    }
    p.subscribe(new RollbackInner(this, t));
  }
}

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable t) {
  if (!second) {
    second = true;
    Publisher<? extends T> p;
    try {
      p = Objects.requireNonNull(nextFactory.apply(t),
      "The nextFactory returned a null Publisher");
    }
    catch (Throwable e) {
      Throwable _e = Operators.onOperatorError(e, actual.currentContext());
      _e = Exceptions.addSuppressed(_e, t);
      actual.onError(_e);
      return;
    }
    p.subscribe(this);
  }
  else {
    actual.onError(t);
  }
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedToRejectedSingleton1() {
  Throwable original = REJECTED_EXECUTION;
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isNotSameAs(original)
      .hasMessage(original.getMessage())
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedToRejectedSingleton2() {
  Throwable original = NOT_TIME_CAPABLE_REJECTED_EXECUTION;
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isNotSameAs(original)
      .hasMessage(original.getMessage())
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedRuntimeToRejectedSingleton1() {
  RuntimeException original = REJECTED_EXECUTION;
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isNotSameAs(original)
      .hasMessage(original.getMessage())
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedRuntimeToRejectedSingleton2() {
  RuntimeException original = NOT_TIME_CAPABLE_REJECTED_EXECUTION;
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isNotSameAs(original)
      .hasMessage(original.getMessage())
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Override
public void onError(Throwable t) {
  boolean b;
  
  try {
    b = predicate.test(t);
  } catch (Throwable e) {
    Throwable _t = Operators.onOperatorError(e, actual.currentContext());
    _t = Exceptions.addSuppressed(_t, t);
    actual.onError(_t);
    return;
  }
  
  if (b) {
    resubscribe();
  } else {
    actual.onError(t);
  }
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedToNormal() {
  Exception original = new Exception("foo");
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isSameAs(original)
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedToRejectedInstance() {
  Throwable original = new RejectedExecutionException("foo");
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isSameAs(original)
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedRuntimeToNormal() {
  RuntimeException original = new RuntimeException("foo");
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isSameAs(original)
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedRuntimeToRejectedInstance() {
  RuntimeException original = new RejectedExecutionException("foo");
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(original, suppressed))
      .isSameAs(original)
      .hasSuppressedException(suppressed);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedToSame() {
  Throwable original = new Exception("foo");
  assertThat(Exceptions.addSuppressed(original, original))
      .isSameAs(original)
      .hasNoSuppressedExceptions();
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedToTERMINATED() {
  Exception suppressed = new IllegalStateException("boom");
  assertThat(Exceptions.addSuppressed(TERMINATED, suppressed))
      .hasNoSuppressedExceptions()
      .isSameAs(TERMINATED);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void addSuppressedRuntimeToSame() {
  RuntimeException original = new RuntimeException("foo");
  assertThat(Exceptions.addSuppressed(original, original))
      .isSameAs(original)
      .hasNoSuppressedExceptions();
}

代码示例来源:origin: resilience4j/resilience4j

@Override
public final void onError(Throwable t) {
  Objects.requireNonNull(t, "onError");
  if (S.getAndSet(this, Operators.cancelledSubscription()) == Operators
      .cancelledSubscription()) {
    // already cancelled concurrently...
    if (permitted.get() == Permit.REJECTED) {
      // Ignore if the call was rejected
      return;
    }
    // signal on error dropped otherwise
    Operators.onErrorDropped(t, currentContext());
    return;
  }
  try {
    hookOnError(t);
  }
  catch (Throwable e) {
    e = Exceptions.addSuppressed(e, t);
    Operators.onErrorDropped(e, currentContext());
  }
  finally {
    safeHookFinally(SignalType.ON_ERROR);
  }
}

代码示例来源:origin: reactor/reactor-core

@Override
public final void onError(Throwable t) {
  Objects.requireNonNull(t, "onError");
  if (S.getAndSet(this, Operators.cancelledSubscription()) == Operators
      .cancelledSubscription()) {
    //already cancelled concurrently
    Operators.onErrorDropped(t, currentContext());
    return;
  }
  try {
    hookOnError(t);
  }
  catch (Throwable e) {
    e = Exceptions.addSuppressed(e, t);
    Operators.onErrorDropped(e, currentContext());
  }
  finally {
    safeHookFinally(SignalType.ON_ERROR);
  }
}

相关文章