当前位置: 首页 > 知识库问答 >
问题:

在webflux序列中引发错误/断言?

马淇
2023-03-14

假设我有以下webflux片段:

.map(str -> str.split(","))
.OnErrorResume(...)

我想确保split返回一个正好包含x个项目的数组。否则我想进入错误恢复。有没有webflux-y方法可以做到这一点filter只会删除坏项,但这不是我想要的。

我是否需要将地图展开为类似以下内容:

{
  String[] arr = str.split(",");
  if (arr.length != 3)
     return Mono.error();
  return arr;
}

还是有什么内在的?

共有1个答案

洪雨石
2023-03-14

你试过句柄方法吗?

.map(str -> str.split(","))
.<String[]>handle((arr, sink) -> {
    if (arr.length == x)
         sink.next(arr);
    else
         sink.error(new ArrayLengthException());
   })
.onErrorResume(err -> Mono.just(...));
 类似资料:
  • 问题内容: 如果我 在表上有,如何抛出错误以阻止对该表进行更新? 问题答案: 这是一种可行的技巧。这不是干净的,但看起来可能可行: 本质上,您只是尝试更新不存在的列。

  • 我有以下POJO: 以及以下控制器: 问题在于,它不是生成错误DataFormatException,而是生成: 虽然如上所述,问题是正确的,但信息是错误的。那么,为了产生想要的错误而不是杰克逊产生的错误,我们能做些什么呢?

  • 问题内容: 我想在Bash脚本中引发错误,显示消息“测试用例失败!!”。如何在Bash中做到这一点? 例如: 问题答案: 这取决于您要将错误消息存储在何处。 您可以执行以下操作: 或以下内容: 引发异常时,将停止程序的执行。 您还可以使用类似“ 哪里是您可能要返回到操作系统的错误代码”(从0到255)的方法。在这里,只是可以退出的随机代码。当您需要向OS指示程序异常停止(例如发生错误)时,您需要将

  • 我想在Bash脚本中引发一个错误,消息为“测试用例失败!!!”。如何在Bash中做到这一点? 例如:

  • 我目前有一个RESTfulWebService跑步服。我最近添加了一个过滤器,它可以执行一些auth操作,并且可以在happy path的情况下工作。但是,当我需要从这个过滤器中抛出一个错误时,它不会将异常序列化为一个漂亮的json字符串,而是抛出一个500,错误如下: 问题是,我不想在应用程序/八位字节流中写入任何内容。我的服务只使用。这在我的实际类中不是问题,我可以在这些类中指定注释。从资源主

  • 我正在尝试将值列表传递给<code>QueryBuilders。termsQuery(),但它抛出错误: Suppressed: org.elasticsearch.client.ResponseException: method [GET], host [http://localhost:9200], URI [/replacement/_search?typed_keys=true 这是我的j