有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案