我正在审查一些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
}
答案 0 :(得分:0)
这些片段来自反编译代码,确实是反编译器感到困惑。我用另一个检查了它,它产生了不同的,虽然也是疯狂的结果。感谢您的帮助。