Ich habe eine ExecutorService
enthält eine Reihe von Callables
ausgeführt. Ich habe eine Liste von Futures
für diese Callables
. Ich möchte so schnell wie möglich herausfinden, ob einer der Callables
einen Exception
wirft. Alle Callables
sind gleichermaßen wahrscheinlich zu werfen Exception
. Die Callables
laufen normalerweise für mehrere Stunden.Catching Ausnahmen aller Futures/Callables in einem ExecutorService
Der übliche Ansatz scheint die Methode Future.get()
zu verwenden. Sie können dies jedoch nur für einen Future
verwenden. Wenn ein anderer Future
einen Exception
wirft, werde ich nicht benachrichtigt. Also dachte ich darüber nach, eine Schleife zu schreiben, die die Methode Future.isDone()
für alle Futures prüft und nach jeder Iteration für einige Zeit schläft. Allerdings ist dieser Ansatz nicht wirklich nett, also habe ich mich gefragt, ob es einen besseren Weg dafür gibt?
Warum nicht Ihre Callables umhüllen und jeden Fehler im Wrapper behandeln? –