Java Timer类:如果在其中一个任务中引发异常,计时器任务将停止执行
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("run");
throw new SomeRandomException();
}
}, 1000, 1000);
输出:运行(引发异常)
问题是:我需要一个计时器任务来检查数据库(或其他东西)中的特定条件。它工作得很好,但有时数据库(或其他东西)返回一些错误,抛出异常,计时器崩溃,然后不再执行单个计时器任务。在run()
中抛出异常后,是否有一些计时器实现可以继续工作
我能
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
try {
System.out.println("run");
throw new SomeRandomException();
} catch (Exception e) {
System.out.println("dummy catch");
}
}
}, 1000, 1000);
但这似乎是站不住脚的
另一种选择是编写自己的计时器类实现,吞咽run方法的异常(这似乎也不对)
共 (0) 个答案