Wie fange ich RuntimeExceptions von Executors richtig ab?

Angenommen, ich habe den folgenden Code:

ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(myRunnable);

Nun, wennmyRunnable wirft einRuntimeExcpetion, wie kann ich es fangen? Ein Weg wäre, meine eigenen zu versorgenThreadFactory Umsetzung zunewSingleThreadExecutor() und Benutzerdefiniert einstellenuncaughtExceptionHandlers für dieThreadEs ist das Ergebnis. Ein anderer Weg wäre zu wickelnmyRunnable zu einem Einheimischen (anonym)Runnable das enthält einen try-catch-block. Möglicherweise gibt es auch andere ähnliche Problemumgehungen. Aber ... irgendwie fühlt sich das schmutzig an, ich finde, dass es nicht so kompliziert sein sollte. Gibt es eine saubere Lösung?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage