奇怪的继续关键字用法

时间:2013-09-03 23:19:51

标签: java loops try-catch continue

我正在审查一些Java代码,并且现在第二次遇到这种情况。

while (true)
  try
  {
    //some simple statements
    continue;
    try {
      Thread.sleep(1000L);
    }
    catch (InterruptedException e)
    {
      SamsetUtils.LogError(this.logger, e.getMessage() + ".29");
    }
    if (!SamsetUtils.BlockingDistributorThread)
    {
      //some very long and critical code here
    }
  }
  //several catch blocks follow

据我所知,关键代码总是被省略,因为continue语句总是会被执行并且总是会立即开始另一次迭代。首先我将一个类似的情况标记为一个错误,但这一次它引起了我的怀疑,因为它是所谓的工作代码的一部分,正在商业上使用。这段代码是以某种我不知道的方式工作的吗?

类似的情况:

 while (true)
  try {
    //some simple statements

    if (notifications != null) {
      int i = 0; continue;

      this.recivedNotifies.add(notifications[i].getName());

      i++; if (i >= notifications.length)
      {
        makeCallBack();
      }
    } else {
      Thread.sleep(2000L);
    }
  }
  catch (Exception e) {
    //catch statements
  }

1 个答案:

答案 0 :(得分:0)

这些片段来自反编译代码,确实是反编译器感到困惑。我用另一个检查了它,它产生了不同的,虽然也是疯狂的结果。感谢您的帮助。