gpt4 book ai didi

java - 有没有办法合并多个单声道错误信号?

转载 作者:行者123 更新时间:2023-12-03 08:44:03 24 4
gpt4 key购买 nike

有没有办法合并多个错误信号?例如:

    return Mono.zipDelayError(
monoOne(), //throws ValidationException with list of validation details 1
monoTwo(),
monoThree() //throws ValidationException with list of validation details 2
)
.then();
}

因此,我想返回 ValidationException 以及合并的验证详细信息列表

最佳答案

您可以使用Exceptions.unwrapMultiple()实用方法来获取 List<Throwable> ,然后您可以将该列表缩减为单个 ValidationException (或进行您喜欢的任何其他检查/处理。)

那么就是将上面的内容包裹在 onErrorMap() 中的情况:

Mono.zipDelayError(
Mono.error(new ValidationException("Reason 1")),
Mono.just("ok"),
Mono.error(new ValidationException("Reason 2"))
)
.onErrorMap(e ->
Exceptions.unwrapMultiple(e).stream()
.reduce((e1, e2) -> new ValidationException(String.join(", ", e1.getMessage(), e2.getMessage()))).get()
);

...给出:

Exception in thread "main" reactor.core.Exceptions$ReactiveException: ValidationException: Reason 1, Reason 2

请注意Exceptions.unwrapMultiple()对于异常不是多个异常的情况仍然有效 - 在这种情况下,您只会得到一个单例列表。

关于java - 有没有办法合并多个单声道错误信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62063863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com