Como capturar corretamente RuntimeExceptions de Executores?

Digamos que eu tenha o seguinte código:

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

Agora semyRunnable lança umRuntimeExcpetioncomo eu posso pegá-lo? Uma maneira seria fornecer meu próprioThreadFactory implementação paranewSingleThreadExecutor() e definir personalizadouncaughtExceptionHandlers para oThreads que saem disso. Outra maneira seria embrulharmyRunnable para um local (anônimo)Runnable que contém um bloco try-catch. Talvez haja outras soluções similares também. Mas ... de alguma forma isso parece sujo, eu sinto que não deveria ser tão complicado. Existe uma solução limpa?

questionAnswers(5)

yourAnswerToTheQuestion