В соответствии с разделом 6.3.2 JCIP:
Runnable - довольно лимитирующая абстракция; run не может вернуть значение или исключить исключенное исключение.
run()
не может вернуть значение, так как его тип возврата недействителен, но почему он не может выставить проверенное исключение?