java - 为什么这个 break 语句 break 不起作用?

标签 java loops break

我有以下代码:

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/

相关文章:

java - 在 Android 中以编程方式解压缩文件

php - WordPress 以编程方式搜索结果

c++ - 如何循环 n 次,在 xml 文件中每个循环一个级别

如果至少未使用 -O2,则 clang 链接器将失败

java - 从 Node.js 调用 Java Lambda 函数

java - 32/64 位 eclipse

java - 继承和创建对象

JavaScript/jQuery : possible to 'automate' switch statement through for loop?

loops - 如何从 Perl 中的内部循环中断外部循环?

html - Firefox 在其他浏览器中的字符串中断行为?