如何捕获Reactor RetryExhaustedException?

问题描述 投票:0回答:1

我有代码抛出

reactor.core.Exceptions$RetryExhaustedException
,我想捕获该特定异常。

但是,这个

RetryExhaustedException
不是一个公共类,它是公共reactor.core.Exceptions类上的包私有静态类,所以我不能只是将它放在catch语句中。由于异常扩展了
IllegalStateException
,我可以捕获它,但这是一个非常广泛的异常,我不希望一般处理。

(请注意,我不是谈论已弃用的(公共)类

reactor.retry.RetryExhaustedException
。这不是同一个例外。)

java exception error-handling spring-webflux project-reactor
1个回答
0
投票

我认为你可以这样做:

try {
    // Your reactive operations
} catch (IllegalStateException e) {
    if (e.getClass().getName().equals("reactor.core.Exceptions$RetryExhaustedException")) {
        // Handle the RetryExhaustedException case
    } else {
        throw e;  // rethrow the exception if it's not RetryExhaustedException
    }
}

但这并不那么优雅。 🤢

© www.soinside.com 2019 - 2024. All rights reserved.