【问题标题】:How to get original exception from CompletableFuture.join()?如何从 CompletableFuture.join() 获取原始异常?
【发布时间】:2020-03-14 15:15:49
【问题描述】:

当任务执行失败并出现异常时,有什么方法可以获得引发的原始异常?看起来 CompletableFuture.join 在失败的情况下总是抛出 CompletionException 。

我们最初的异常包含额外的属性(成员变量),这些属性必须用于以适当的方式处理异常。

【问题讨论】:

    标签: java multithreading exception java-8 completable-future


    【解决方案1】:

    来自the docs

    为了更好地符合常见函数形式的使用,如果完成此 CompletableFuture 所涉及的计算引发异常,则此方法将引发(未经检查的)CompletionException 以底层异常作为其原因 .

    换句话说,

    Exception original = completableException.getCause();
    

    【讨论】:

    • 如果抛出的异常本身不是CompletionException,那么原因可能是null
    猜你喜欢
    • 2021-05-08
    • 2011-11-19
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2013-05-20
    • 2011-01-03
    相关资源
    最近更新 更多