io.trane.future.Future.rescue()方法的使用及代码示例

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

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

Future.rescue介绍

[英]If this future completes with an exception, applies the provided rescue function and flattens the result. Note that it's possible to return a Future.exception from f if the exception can't be recovered.
[中]如果此功能在异常情况下完成,则应用提供的救援功能并使结果平坦化。请注意,返回未来是可能的。如果无法恢复异常,则来自f的异常。

代码示例

代码示例来源:origin: traneio/future

@Override
 final Future<T> apply(final Future<T> result) {
  return result.rescue(f);
 }
}

代码示例来源:origin: traneio/ndbc

default public Exchange<T> rescue(final Function<Throwable, Exchange<T>> f) {
 return channel -> run(channel).rescue(t -> f.apply(t).run(channel));
}

代码示例来源:origin: traneio/ndbc

@Override
public final Future<Boolean> isValid() {
 return query(isValidQuery).map(r -> true).rescue(e -> Future.FALSE);
}

代码示例来源:origin: traneio/ndbc

@Override
public Future<Boolean> isValid() {
 return query(isValidQuery).map(r -> true).rescue(e -> Future.FALSE);
}

代码示例来源:origin: traneio/ndbc

private final Future<Void> validateN(final int n) {
 if (n >= 0) {
  final T item = items.poll();
  if (item == null)
   return Future.VOID;
  else
   return item.isValid().rescue(e -> Future.FALSE).flatMap(valid -> {
    if (!valid)
     return item.close().rescue(e -> Future.VOID).ensure(() -> sizeSemaphore.release());
    else {
     items.offer(item);
     return Future.VOID;
    }
   }).flatMap(v -> validateN(n - 1));
 } else
  return Future.VOID;
}

代码示例来源:origin: traneio/ndbc

default public Exchange<T> onFailure(final Function<Throwable, Exchange<?>> e) {
 return channel -> run(channel).rescue(ex -> e.apply(ex).run(channel).flatMap(v -> Future.exception(ex)));
}

相关文章