2010-09-17 3 views
4

Existe-t-il des circonstances dans lesquelles un ThreadPoolExecutor.CallerRunsPolicy lancera un RejectedExecutionException?Un ThreadPoolExecutor.CallerRunsPolicy va-t-il jamais lancer une exception RejectedExecutionException?

Il me semble que la politique elle-même est destinée à empêcher le lancement de ces exceptions. L'API pour sa méthode d'interface, RejectedExecutionHandler.rejectedExecution() prétend qu'il peut lancer un RejectedExecutionException. L'API pour CallerRunsPolicy.rejectedExecution() ne le fait pas.

Résumé: Ai-je besoin de traiter explicitement un RejectedExecutionException sur execute() si j'utilise un CallerRunsPolicy?

Répondre

4

Non, vous ne le faites pas. ThreadPoolExecutor.CallerRunsPolicy ne jetterait jamais RejectedExecutionException sauf si vous le lancez explicitement sous Runnable#run

+0

C'est aussi ce que je comprends. Avez-vous trouvé une documentation API qui confirme cela? –

+0

De plus, la source de JDK6 vous protège. Mais je préfère que l'API me le dise spécifiquement. :) - Je vais accepter cette réponse, de toute façon. –

+0

Non, je n'ai trouvé aucun document API indiquant que j'ai vérifié les sources de JDK 6 'ThreadPoolExecutor.CallerRunsPolicy'. C'est facile à comprendre, aucune exception n'est lancée ici. – Archer

Questions connexes