当前位置: 首页 > 知识库问答 >
问题:

如何在最终块开始执行之前在java中返回try块值?

戚升
2023-03-14

我有java中的代码片段,比如

Int methodHitByAPI() {
     List returnValue = doSomething();
     return returnValue;
     finishProcess(returnValue);
}
try {
    returnValue = doSomething();
    return returnValue;
}
finally {
     finishProcess(returnValue);
}

return returnValue;

注意:我们可能会将返回值发送给fonten,并调用另一个APi调用finishProcess()。但事实并非如此

共有1个答案

唐兴发
2023-03-14

也许异步方法适合这里,比如...

ExecutorService executor = Executors.newFixedThreadPool(10);
public List methodHitByAPI() {
    List returnValue = doSomething();
    executor.submit(()->finishProcess(returnValue));
    return returnValue;
}

returnValue将立即返回,但finishProcess将在一个独立的线程中执行

 类似资料:
  • 如何确保在输入有效输入之前,仍然允许循环,同时初始化此InputStream? 谢谢你

  • 问题内容: 根据Java语言规范的第§14.20.2节 通过首先执行try块来执行带有finally块的try语句。然后有一个选择: 如果try块的执行正常完成,则执行finally块,然后可以选择: 如果finally块正常完成,则try语句正常完成。 如果finally块由于原因S突然完成,则try语句由于原因S突然完成 如果我正确地解释了它,那么在执行try块之后最终会被调用,但是所有这些如

  • 问题内容: 下面是有趣的代码: 可以请人解释一下,什么结果将返回这两个函数并解释原因,即描述执行的顺序 问题答案: 从Python文档 无论是否发生异常,finally子句始终在离开try语句之前执行。如果try子句中发生了异常且未由except子句处理(或在except或else子句中发生),则在执行finally子句后重新引发该异常。 当try语句的任何其他子句通过break,continue

  • 我有这样一个PL/SQL块: 此块需要使用Oracle JDBC执行。我尝试过以下方法: > 尝试使用语句对象执行此操作。因为这是一个块,所以出现了一个异常,说这不是一个sql语句 这可以分成sql语句,但是我有100个这样的块,这对代码来说很麻烦,我想把这个留给sqlplus。 尝试使用Callable语句,但不能正常工作。 任何解决方案都会有帮助。

  • 问题内容: 我想从函数中获取价值。功能上有一个障碍。当块执行时,该功能已返回该值。我尝试了许多不同的方法,但它们并没有帮助我。我用和调度。该函数始终返回值,直到执行块为止。 问题答案: 您不能简单地返回此处,因为reverseGeocodeLocation函数正在异步运行,因此您将需要使用自己的完成块: