我有这段代码:
exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.err.println("Getting messages....");
getNewMessagesAndAddToTextArea();
}
}, 0, GET_MESSAGE_INTERVAL, TimeUnit.SECONDS);
exec在我的类中声明为: private ScheduledExecutorService exec;
我收到“获取消息....”消息2次然后停止。我无法解释原因。 GUI仍然有效。那么这里发生了什么?
答案 0 :(得分:6)
我怀疑getNewMessagesAndAddToTextArea
正在抛出异常。
验证该想法的第一种方法是添加
System.err.println("Finished getting messages");
在run
方法的最后。如果(正如我所料)你第二次没有看到,你应该考虑包括一个记录异常的try / catch块。您需要使用未经检查的未经检查的异常来考虑您想要做的内容...