gpt4 book ai didi

java - 有没有办法了解 Job 是否成功完成?

转载 作者:行者123 更新时间:2023-12-02 00:32:38 25 4
gpt4 key购买 nike

在 Play 中,似乎如果在 Job<T> 内抛出异常,异常不会向外传播。

如果我理解正确,为了知道内部代码是否抛出异常,我必须恢复使用 boolean 返回值( a known anti pattern )?或者我错过了什么?

这是一个代码示例,它不会抛出任何内容,而是呈现待办事项页面 - 我想知道如何知道内部作业从外部 Controller 方法抛出异常:

public static void testException() throws ExecutionException, InterruptedException {
F.Promise<Void> result = new Job<Void>() {
@Override
public void doJob() throws Exception {
Thread.sleep(1000);
throw new RuntimeException("Foo");
}
}.now();
await(result);
result.get();
todo();
}

最佳答案

我认为await期望内部调用的方法返回Promise,它是一个Future(执行完成时将捕获结果)。它是异步的,因此向外抛出异常没有多大意义。

如果你只是对结果执行 get() ,它会给你任何异常(它会抛出)。请参阅code

关于java - 有没有办法了解 Job<Void> 是否成功完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com