当抛出未捕获的异常时,TimerTasks会死亡(无论它是否在tomcat中运行都无关)。解决此问题的最简单方法是在run方法中捕获RuntimeException,如果需要,请登录并继续。
还建议也捕获Throwables并在重新抛出之前对其进行记录,以便可以在日志中看到stacktrace,如下所示:
try{ doRun(); }catch (RuntimeException e){ logger.error("Uncaught Runtime Exception",e); return; // Keep working }catch (Throwable e){ logger.error("Unrecoverable error",e); throw e; }


