java - 从 java 任务抛出异常不起作用

标签 java exception task

我试图在单独线程上运行的任务中抛出异常。然后我想捕获调用线程上的异常。请参阅下面我的试用:
当我现在运行代码时,它卡在“抛出新的 RuntimeException..”行上

Task calcTask = createCalcTask();

ExecutorService executor = Executors.newFixedThreadPool(1);
Future future = executor.submit(calcTask);
try {
    future.get();
} catch (ExecutionException ex) {
    ex.getCause().printStackTrace();
} catch (InterruptedException e1) {
    e1.printStackTrace();
}

public Task<Object> createCalcTask() {
    return new Task<Object>() {
        @Override
        protected Object call() throws Exception {              
            throw new RuntimeException("testE");
        }
    };
}

最佳答案

试试这个.... 抛出异常的行应该位于 try block 内

try {
   Future future = executor.submit(calcTask); //
   future.get();
} catch (ExecutionException ex) {
   ex.printStackTrace();
}

关于java - 从 java 任务抛出异常不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48386225/

相关文章:

JAVA:在给定特定行和列的情况下替换 JTextArea 中的字符

java - 将 Tomcat(使用 Liferay)配置为 2012R2 服务时出现异常

java - 为什么这个程序会根据用户输入的位数重复答案?

Java教程示例代码抛出: java.net.SocketException : Connection reset - what does cause it?

c# - 挂断异步 TCP 客户端连接

c# - 任务还没有开始调用Task.wait可能不会等待?

c# - 通过上下文访问 ASP.NET 应用程序中的 session

java - 重载方法优先级

java - 避免没有集合的重复?

java - websocket 发送期间 ByteBuffer 中的 IllegalArgumentException