【发布时间】:2021-10-19 12:37:54
【问题描述】:
我有一个方法,我想在 SQLRecoverableException 发生时重试。我用@Retryable(value={SQLRecoverableException.class}) 注释了该方法并在我的应用程序中启用了重试。但是,此特定方法包含一个用于处理 RuntimeException 的 try-catch 块。重试现在不起作用,因为在 try-catch 块中捕获了任何异常。我希望该方法在错误处理之前重试 3 次。这是否可以通过开箱即用的 Spring Retry 实现,还是我必须寻求更自定义的解决方案?
【问题讨论】:
-
据我所知,
SQLRecoverableException不是RuntimeException,因此不应被catch-block 捕获(如果catch-block 仅捕获RuntimeExceptions)。请edit发帖并添加相关代码。 -
请贴出代码。如果您在方法本身中捕获异常,那么 Spring 当然无法对其采取行动。如果您在另一个调用相关方法的方法中捕获它,它应该可以工作。
标签: java spring-jdbc spring-retry