我有以下代码:
public void post(String message) {
final String mess = message;
(new Thread() {
public void run() {
while (true) {
try {
if (status.equals("serviceResolved")) {
output.println(mess);
Game.log.fine("The following message was successfully sent: " + mess);
break;
} else {
try {Thread.sleep(1000);} catch (InterruptedException ie) {}
}
} catch (NullPointerException e) {
try {Thread.sleep(1000);} catch (InterruptedException ie) {}
}
}
}
}).start();
}
在我的日志文件中,我发现了很多这样的行:
The following message was successfully sent: blablabla
The following message was successfully sent: blablabla
The following message was successfully sent: blablabla
The following message was successfully sent: blablabla
我的程序没有响应。
在我看来,break
命令不起作用。这可能是什么原因。
有趣的是,它并非总是发生。有时我的程序运行良好,有时会出现上述问题。
最佳答案
难道是这一行成功了:
output.println(mess);
但是这一行抛出了一个空指针异常:
Game.log.fine(...
在这种情况下,您将在控制台上看到输出,但从未到达 break 语句。 Game.log
可能为空吗?
关于java - 为什么这个 break 语句 break 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667499/