【问题标题】:How to run a loop until an exception is not generated如何运行循环直到不产生异常
【发布时间】:2013-09-07 05:37:40
【问题描述】:

我有一个名为test() 的方法会引发异常。

我想写一个循环,只要抛出异常就执行,不再抛出异常就中断。

谁能提示我必须使用的逻辑?

例如我试过,

int i=0;
while(test())
{
    i++;
}
System.out.println(i);

【问题讨论】:

  • 使用异常来控制流可能不是一个好主意
  • 如果可能,请避免使用这种方法,因为在抛出异常之前运行循环是非常不可靠的,可能会导致不必要的内存泄漏
  • 我不会说它一定不可靠,因为它确实取决于整个程序的行为。但是,如果您需要运行此循环一段时间,并且有能力将其暂停一小段时间,则在循环中始终可到达的点调用 Thread.sleep(100) 可以节省大量 CPU。

标签: java exception loops throw


【解决方案1】:
int i=0;
while (true) {
    try {
        test();
        break;
    } catch (Exception e) {
        i++; // Loop will continue
    }
}

【讨论】:

  • 为什么需要int i?没有它,OP 要求的逻辑将正常工作。
  • 我想他想在循环后打印i值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 2014-12-07
  • 2017-08-03
  • 2020-12-18
相关资源
最近更新 更多