CompletableFuture 链中,异常经过 exceptionally、handle、whenComplete 时的传播与恢复规则分别是什么?
进阶版来源:bytedance中级工程师CompletableFuture异常处理
答案解析
在 CompletableFuture 链中,可以把这三个方法理解为:exceptionally 用于异常恢复,handle 用于统一处理成功和异常并转换结果,whenComplete 用于旁路观察结果,通常不改变原有结果。
exceptionally
exceptionally 只有在上游阶段异常完成时才会执行,回调参数是异常对象,回调的返回值会作为下游阶段的正常结果,因此它具有异常恢复能力。
这里上游异常被 exceptionally 捕获,返回 "default" 后,下游阶段会正常完成。
如果上游正常完成,exceptionally 不会执行,结果会直接向后传递。如果 `exc
登录后查看完整内容
