Tengo el siguiente problema y me gustaría saber qué ocurre exactamente. Estoy usando Java ScheduledExecutorService para ejecutar una tarea cada cinco minutos. Funciona muy bien. Los ejecutores cambiaron por completo la forma en que hago la programación de subprocesos en Java.Excepciones no controladas con ejecutores programados Java
Ahora, busqué Java Doc para obtener información sobre cuál sería el comportamiento en caso de que la tarea programada falle con una excepción no controlada, pero no pudo encontrar nada.
¿La próxima tarea programada aún se va a ejecutar? Si hay una excepción no controlada, ¿el ejecutor programado detiene la tarea de programación? ¿Alguien puede señalar información con respecto a este simple problema?
Muchas gracias.
Gracias mucho por la respuesta. No vi eso en API Doc. –
Una exploración rápida de la fuente de ThreadPoolExecutor (encima de la cual se implementa el STPE) sugiere que RuntimeExceptions se detectará perfectamente y se informará a través de ScheduledFuture, pero también hará que termine el subproceso de trabajo. El TPE notará esta terminación del hilo del trabajador y activará un nuevo reemplazo, si es necesario. Consulte runWorker() y processWorkerExit() en java.util.concurrent.ThreadPoolExecutor en las fuentes de JDK, o en el sitio de Doug Lea. – andersoj