java - 如果执行程序服务的可调用项之一遇到错误,如何在控制台中记录错误

标签 java multithreading executorservice

我有一个使用 executorService 的程序,我将向其传递 callables

其中每一个都是实现 java.util.concurrent.Callable 的一个类的对象。

然后调用executorServicejava.lang.NoClassDefFoundError 被抛出到 call() 方法中的一个可调用项的中间。

但是它不会终止,也不会在控制台上登录。因此无法知道程序是否正确运行。请提出我可以理解的任何方式。

最佳答案

A Callable抛出异常,它不是 NoClassDefFoundError 的父类(super class).在你的 Callable 中,捕获错误(甚至是 Throwable)并用异常包装它:

V call() throws Exception
{
    try
    {
       return this.doSomething();
    } catch (Error e) {
      e.printStackTrace();
      throw new Exception(e);
    }
}

关于java - 如果执行程序服务的可调用项之一遇到错误,如何在控制台中记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916227/

相关文章:

java - 汉诺塔 : Finding the n-th configuration

java - 使用 BufferedReader 在 Java 中按任意键

c++ - 使用线程时出现意外输出

java - 线程一个接一个地运行,但不同时运行,我该如何解决这个问题?

java - 如何在不等待输出的情况下继续使用 CompletableFuture

java - XML 文件没有循环通过 Out

java - 变更监听器如何工作

Java 多线程一次运行多个方法的最简单方法?

多核世界中的 Java Fork/Join 与多线程

java - 向线程执行器添加更多信息?