try {
for (final Future<Boolean> bool : threadPool.invokeAll(tasks)) {
if (!bool.get()) {
return false;
}
}
return true;
} finally {
threadPool.shutdownNow();
threadPool.awaitTermination(
IMPORT_THREADS_AWAIT_TERMINATION_TIMEOUT.toMillis(), TimeUnit.MILLISECONDS);
}
Supposons que la tâche puisse lever une exception. Supposons qu'il y ait 5 tâches, et que la 5ème tâche lève une exception, mais que la 1ère tâche de la boucle renvoie un faux. ( et la boucle s'interrompt). Si cette tâche lève une exception, je veux l'attraper et faire un peu de logique de nettoyage. Je me demande si ma logique ne capturera jamais l'exception lancée par la tâche 5 puisque je sors de la boucle à la tâche 1.
-
Dans ce cas, rencontrerons-nous une exception lancée par la tâche 5 ?
-
Montrer que threadPool.shutdownNow() lance l'exception de la tâche 5 ?