Search code examples
javareactor

The difference between onErrorResume and onErrorReturn


In spring project reactor, what are the differences between onErrorResume and onErrorReturn ? and when I should each of them ?


Solution

  • onErrorReturn => use case in the scenario of static default value.

    Ex:

     public Mono<ServerResponse> handleRequest(ServerRequest request) {
            return sayHello(request)
              .onErrorReturn("Hello Stranger")
              .flatMap(s -> ServerResponse.ok()
              .contentType(MediaType.TEXT_PLAIN)
              .syncBody(s));
        }
    

    onErrorResume- has multiple use cases

    • Compute a dynamic fallback value
    • Execute an alternative path with a fallback method -Catch, wrap, and re-throw an error e.g. as a custom business exception

    This tutorial has examples for each scenarios.