java – 如何找到CompletableFuture异常完成
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何找到CompletableFuture异常完成,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1087字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何找到CompletableFuture异常完成](/upload/InfoBanner/zyjiaocheng/812/45d73c75576d48cbb4c1e531504dfbad.jpg)
我正在使用CompletableFuture,并对异常处理有疑问.
我有这样的代码,如果任何validate()或process()方法抛出异常,那么它由ExceptionHandler处理.但是,当我像这样使用CompletableFuture时,抛出的异常包含在CompletionException中.我可以知道如何确保在那里调用我的ExceptionHandler而不是获得CompletionException?
CompletableFuture<Response> response = CompletableFuture
.supplyAsync(() -> {
validationService.validate(request);
return myService.process(request, headers);
});
解决方法:
在CompletableFuture上调用get()之前调用此方法isCompletedExceptionally,如果它以异常完成,则返回true
public boolean isCompletedExceptionally()
Returns true if this CompletableFuture completed exceptionally, in any way. Possible causes include cancellation, explicit invocation of completeExceptionally, and abrupt termination of a CompletionStage action.
您还可以为completableFuture添加异常块,因此在执行任务时如果发生任何异常,它将执行异常,但输入参数异常
CompletableFuture<String> future = CompletableFuture.supplyAsync(()-> "Success")
.exceptionally(ex->"failed");
在上面的示例中,如果发生任何异常,则执行supplyAsync失败将返回,否则返回Success
内容总结
以上是互联网集市为您收集整理的java – 如何找到CompletableFuture异常完成全部内容,希望文章能够帮你解决java – 如何找到CompletableFuture异常完成所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。