io.vertx.core.Future.recover()方法的使用及代码示例

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

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

Future.recover介绍

[英]Handles a failure of this Future by returning the result of another Future. If the mapper fails, then the returned future will be failed with this failure.
[中]通过返回另一个未来的结果来处理此未来的失败。如果映射程序失败,则返回的未来将因此失败而失败。

代码示例

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testRecoverFailureWithSuccess() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.fail("recovered");
 checker.assertSucceeded("recovered");
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testRecoverFailureWithFailure() {
 Throwable cause = new Throwable();
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.failedFuture(cause));
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.fail("recovered");
 checker.assertFailed(cause);
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testRecoverFailureFails() {
 RuntimeException cause = new RuntimeException("throw");
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> {
  throw cause;
 });
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.fail("recovered");
 checker.assertFailed(cause);
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testFailedFutureRecover() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
 f.fail("recovered");
 assertTrue(r.succeeded());
 assertEquals(r.result(), "recovered");
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testFailedMapperFutureRecover() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> {
  throw new RuntimeException("throw");
 });
 f.fail("recovered");
 assertTrue(r.failed());
 assertEquals(r.cause().getMessage(), "throw");
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testRecoverWithNullFunction() {
 Future<Integer> fut = Future.future();
 try {
  fut.recover(null);
  fail();
 } catch (NullPointerException ignore) {
 }
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testSucceededFutureRecover() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
 f.complete("yeah");
 assertTrue(r.succeeded());
 assertEquals(r.result(), "yeah");
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testRecoverSuccessWithSuccess() {
 AtomicBoolean called = new AtomicBoolean();
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> {
  called.set(true);
  throw new AssertionError();
 });
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.complete("yeah");
 assertTrue(r.succeeded());
 checker.assertSucceeded("yeah");
 assertFalse(called.get());
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testRecoverFailureWithSuccess() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.fail("recovered");
 checker.assertSucceeded("recovered");
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testRecoverFailureWithFailure() {
 Throwable cause = new Throwable();
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.failedFuture(cause));
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.fail("recovered");
 checker.assertFailed(cause);
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testFailedMapperFutureRecover() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> {
  throw new RuntimeException("throw");
 });
 f.fail("recovered");
 assertTrue(r.failed());
 assertEquals(r.cause().getMessage(), "throw");
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testRecoverFailureFails() {
 RuntimeException cause = new RuntimeException("throw");
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> {
  throw cause;
 });
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.fail("recovered");
 checker.assertFailed(cause);
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testSucceededFutureRecover() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
 f.complete("yeah");
 assertTrue(r.succeeded());
 assertEquals(r.result(), "yeah");
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testFailedFutureRecover() {
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
 f.fail("recovered");
 assertTrue(r.succeeded());
 assertEquals(r.result(), "recovered");
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testRecoverWithNullFunction() {
 Future<Integer> fut = Future.future();
 try {
  fut.recover(null);
  fail();
 } catch (NullPointerException ignore) {
 }
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testRecoverSuccessWithSuccess() {
 AtomicBoolean called = new AtomicBoolean();
 Future<String> f = Future.future();
 Future<String> r = f.recover(t -> {
  called.set(true);
  throw new AssertionError();
 });
 Checker<String> checker = new Checker<>(r);
 checker.assertNotCompleted();
 f.complete("yeah");
 assertTrue(r.succeeded());
 checker.assertSucceeded("yeah");
 assertFalse(called.get());
}

代码示例来源:origin: eclipse/hono

/**
 * {@inheritDoc}
 */
@Override
protected Future<Void> onPublishedMessage(final MqttContext ctx) {
  return mapTopic(ctx)
      .recover(t -> {
        LOG.debug("discarding message [topic: {}] from device: {}", ctx.message().topicName(), t.getMessage());
        return Future.failedFuture(t);
      }).compose(targetAddress -> uploadMessage(ctx, targetAddress, ctx.message()));
}

代码示例来源:origin: org.eclipse.hono/hono-adapter-kura

/**
 * {@inheritDoc}
 */
@Override
protected Future<Void> onPublishedMessage(final MqttContext ctx) {
  return mapTopic(ctx)
      .recover(t -> {
        LOG.debug("discarding message [topic: {}] from device: {}", ctx.message().topicName(), t.getMessage());
        return Future.failedFuture(t);
      }).compose(targetAddress -> uploadMessage(ctx, targetAddress, ctx.message()));
}

代码示例来源:origin: eclipse/hono

Future<Void> loadTenantData() {
  if (getConfig().getFilename() == null) {
    return Future.succeededFuture();
  } else {
    final Future<Buffer> readResult = Future.future();
    vertx.fileSystem().readFile(getConfig().getFilename(), readResult.completer());
    return readResult.compose(buffer -> {
      return addAll(buffer);
    }).recover(t -> {
      log.debug("cannot load tenants from file [{}]: {}", getConfig().getFilename(), t.getMessage());
      return Future.succeededFuture();
    });
  }
}

代码示例来源:origin: eclipse/hono

Future<Void> loadRegistrationData() {
  if (getConfig().getFilename() == null) {
    return Future.succeededFuture();
  } else {
    final Future<Buffer> readResult = Future.future();
    vertx.fileSystem().readFile(getConfig().getFilename(), readResult.completer());
    return readResult.compose(buffer -> {
      return addAll(buffer);
    }).recover(t -> {
      log.debug("cannot load device identities from file [{}]: {}", getConfig().getFilename(), t.getMessage());
      return Future.succeededFuture();
    });
  }
}

相关文章