代码之家  ›  专栏  ›  技术社区  ›  Flavouski

反应性异常处理

  •  5
  • Flavouski  · 技术社区  · 6 年前

    如何使用 Mono.error(<Throwable>) 但附上请求返回的尸体信息?

    • 是否存在延伸的反应对象 Throwable 这需要一个Mono/Flux对象,所以抛出的错误将等待主体被解释?
    • 或者有没有一种方法可以在现有的Mono对象上添加某种“标志”,使其立即失效(以避免 可抛出 )

    下面的示例场景:

    import org.springframework.web.reactive.function.client.WebClient;
    
    private someMethod() {
        webClient.get().retrieve().onStatus(HttpStatus::isError, this::errorHandler)
    }
    

    private Mono<? extends Throwable> errorHandler(ClientResponse cr) {
        Mono<String> body = cr.body(BodyExtractors.toMono(String.class));
    
            ...<do something here>...
    
        return Mono.error(new WhateverException());
    }
    

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   Flavouski    6 年前
    return body.flatMap(str -> Mono.error(new WhateverException(str)));