java multithreading exception executorservice callable

java - Dónde capturar excepciones lanzadas desde Callable.call()



multithreading exception (1)

AFAIR java.util.concurrent.Future.get() lanzará ExecutionException si se proporcionó una excepción lanzada en el pasado (la excepción se almacena en el Future ).

Excepción lanzada cuando se intenta recuperar el resultado de una tarea que se canceló lanzando una excepción. Esta excepción se puede inspeccionar utilizando el método Throwable.getCause() .

Posible duplicado:
Manejo de excepciones de tareas de Java ExecutorService

Utilizo el ExecutorService de Java para coordinar Threads. Para iniciar los hilos que utilizo.

pool = new ExecutorService(2); callableResults = pool.invokeAll(threads);

Para recopilar el resultado, uso future.get() para cada hilo. "hilos" es una Lista de objetos de una clase que implementa Callable y anula call() .

Ahora tengo el siguiente problema. El método call() lanza varias excepciones específicas. invokeAll() y future.get() lanzan solo InterruptedException .

¿Dónde puedo detectar mis excepciones específicas que lanzo en call() ? ¿O tengo que manejarlos allí? Si se lanza una de esas excepciones, ¿el resultado es una InterruptedException ?