并发Java在几次成功的线程执行后在循环中抛出ExecutionException
我的可调用线程有问题
以下是代码snipet:
ExecutorService service = Executors.newFixedThreadPool(1);
for(int i =0; i<30;i++){
Future<MyClass> task = service.submit( new MyThread(parameter1, parameter2));
try{
result = task.get();
}
catch(InterruptedException ex){
System.out.println("Interruped!");
}
catch(ExecutionException ex){
System.out.println("Execution ExceptioN!");
}
}
service.shutdownNow();
上面的代码将正确执行18次,然后在第18次之后抛出ExecutionException
我做错了什么
谢谢
# 1 楼答案
ExecutionException文档说明:
试图检索通过引发异常而中止的任务的结果时引发异常。可以使用Throwable来检查此异常。getCause()方法
所以你的任务是抛出一个异常。调用ExecutionException上的getCause以查看该异常