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

Java executorservice-提交任务并捕获异常

华锦
2023-03-14

我正在尝试将一个任务提交给Java的ExecutorService。它要么需要一个Callable,它允许抛出异常,要么需要一个Runnable。我的用例是愚蠢的:我想安排一个抛出异常的任务,但它是一个无效的方法。因此,我不能使用Callable或Runnable,因为方法定义与我的用例不匹配。我还想让我的异常从提交后收到的Future传播。有什么想法吗?

共有2个答案

杜俊晤
2023-03-14

您可以使用<code>或Callable

try {
  // do stuff
} catch(Throwable t) {
  return t;
}
return null;

在这种情况下,Future.get 将返回异常。在这两种情况下,成功的任务都将从其 Future.get 返回 null

谯振国
2023-03-14

您可以使用Callable

来自未来

 类似资料:
  • 问题内容: 我几乎从来没有玩过客户端方面的东西,而这个大概简单的任务正在踢我的屁股:) 我有一些链接。OnClick我想阻止默认操作,捕获其href网址,向该url提交ajax GET,并简单地添加结果…但是我什至无法越过起始行:) 播放时间锚点示例: 现在,我已经针对SO上的 类似 请求提出了一些建议,但是这些链接仍然会使浏览器导航到href网址。 即使只是 …链接仍然导航到另一页。 我有点像婴

  • 我有以下情况: 所有代码都在@Transactional内部(传播=传播。REQUIRES_NEW)。基本上,我想调用< code>doSomething,如果它抛出一个异常,设置实体的一个字段,提交,然后再抛出异常。但是,它不起作用,因为事务被标记为回滚。

  • 本文向大家介绍Android实现捕获未知异常并提交给服务器的方法,包括了Android实现捕获未知异常并提交给服务器的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android实现捕获未知异常并提交给服务器的方法。分享给大家供大家参考,具体如下: 在Android应用中,即便应用已经投放市场,但有时也会遇到一些未知的异常,此时如果能够获得用户的反馈信息,那么对于我们应用的开发是一个

  • 我使用的是python 2.7和tornado 4.5 以下代码不起作用:除块不被触发。我不明白为什么? 相反,我可以捕获;但是我没有我如何调用的上下文。在我的例子中,更有意义的是引发一个较低级别的异常,并且调用者根据输入将其转换为人类可读的错误。 我是否只需要重构它来调用较低级别的gen.Task?那会很烦人:/

  • 问题内容: 我正在寻找可以提供超时的ExecutorService实现。如果提交到ExecutorService的任务花费的时间超过了超时时间,则这些任务将被中断。实现这样的野兽并不是一个困难的任务,但是我想知道是否有人知道现有的实现。 这是我根据以下一些讨论得出的。任何意见? 问题答案: 你可以为此使用ScheduledExecutorService。首先,你只提交一次即可立即开始,并保留创建的

  • 我正在用。NET核心编写一个ASP.NET MVC站点。我试图封装一些常见的异常处理。在基类中,我有这个方法。 从继承自该基类的控制器中,我使用如下方法: 假设_someservice.getAsync()方法如下: 这工作得很好,将捕获基类方法中的异常并返回NotFound结果。 但是,我希望避免从SomeService.GetAsync方法调用。result。我读到的任何地方都说不要那样做,因