我有一个执行特定任务的异步函数,下面是示例代码,
@Async
public CompletableFuture<Boolean> foo(String value) throws Exception {
// do task
LOGGER.info("Processing completed");
return CompletableFuture.completedFuture(true);
}
无论何时发生任何运行时异常,都不会通知调用者函数,并且应用程序运行时不会出现任何错误/异常。这是危险的,因为我们会错误地假设处理是成功的。
如何避免这种情况,并使方法在任何异常发生时报告错误?
2条答案
按热度按时间nnt7mjpx1#
您可以使用executely方法在调用方处理异常
CompletableFuture
```CompletableFuture foo = service.foo(value)
.exceptionally(ex-> /* some action */ false);
hmae6n7t2#
为了克服这个问题,您需要添加一个异常try/catch块,并在可完成的future示例中设置异常
在来电端,