Having Runnables that throw Exceptions is definitely not something that should happen (who would catch it and do what with it?) which is why we resubmit (so that the entire batch is not lost) and rethrow the t (next line).