我有一个运行时间很长的任务,它会定期轮询 Web 服务以获取 XML 内容。我正在为这些定期运行使用计划的执行程序,并且一切正常。
ScheduledExecutorService scheduleAtFixedRate的 JavaDoc状态
- ...如果任务的任何执行遇到异常,则后续执行将被抑制 ...*
这清楚地表明,在未处理的异常情况下,应用程序即使正在运行,实际上也处于停止状态并且什么也不做。
我想确保任务执行不会停止,除了捕获所有异常之外,还有其他方法可以处理吗?
@Override
public void run() {
try {
// fetch xml feed from network,
// parse the feed and dump to file the json.
} catch (Exception e) {
logger.error("Unhandled exception " + e);}
}
}