occurrent icon indicating copy to clipboard operation
occurrent copied to clipboard

Add support for handling final exception

Open johanhaleby opened this issue 1 year ago • 0 comments

Currently, you can do:

RetryStrategy
                .exponentialBackoff(Duration.ofSeconds(1), Duration.ofSeconds(5), 2.0)
                .maxAttempts(10)
                .onError { info, throwable -> println("somethign") }
                .execute(..)

But it would be nice to do something on "completion with failure", for example, to avoid avoid try/catch around the retry strategy. E.g.

RetryStrategy
                .exponentialBackoff(Duration.ofSeconds(1), Duration.ofSeconds(5), 2.0)
                .maxAttempts(10)
                .onError { info, throwable -> println("somethign") }
                .execute(..)
                .mapError(throwable -> // return a new throwable )

and/or:

RetryStrategy
                .exponentialBackoff(Duration.ofSeconds(1), Duration.ofSeconds(5), 2.0)
                .maxAttempts(10)
                .onError { info, throwable -> println("somethign") }
                .execute(..)
                .onCompletedWithError(throwable -> ) // Maybe add "onCompletedSuccessfully" or replace with common "onCompleted" method?

and/or:

RetryStrategy
                .exponentialBackoff(Duration.ofSeconds(1), Duration.ofSeconds(5), 2.0)
                .maxAttempts(10)
                .onError { info, throwable -> println("somethign") }
                .execute(..)
                .returnIfCompletedWithError(throwable -> "something else" ) // Move back to happy track (Better name needed)

johanhaleby avatar May 24 '23 06:05 johanhaleby