Normalerweise, wenn eine Future
läuft und auf das Ergebnis wartet, kann ich nur InterruptedException | ExecutionException
fangen.Wie können benutzerdefinierte Ausnahmen von Futures abgefangen werden?
Aber was ist, wenn die Aufgabe eine CustomException
wirft, die ich explizit fangen möchte? Könnte ich besser als e.getCause() instanceof CustomException
überprüfen?
List<Future> futures; //run some task
for (Future future : futures) {
try {
future.get(); //may throw CustomException
} catch (InterruptedException | ExecutionException e) {
if (e.getCause() instanceof CustomException) {
//how to catch directly?
}
}
}
Nein, 'future.get()' kann nur die zwei Ausnahmen explizit werfen. Nicht mehr. – membersound