提问人:user2735714 提问时间:2/21/2015 最后编辑:DNAuser2735714 更新时间:2/21/2015 访问量:64
在 java 中处理 EOFException
Dealing with EOFException in java
问:
我有以下功能。我希望循环继续,直到消息等于“您已成功登录!但是,当用户输入错误的输入(无效的用户名或密码)时,循环会无限循环,因为 .我该如何解决这个问题?
谢谢。EOFException
private void processConnection() throws IOException
{
boolean eofReached = false;
String message;
do
{
try
{
message = (String)input.readObject();
if(message.equals("You have successfully logged in!"))
{
displayMessage(String.format("\n%s ", message));
logged = true;
prepareUI();
}
else
{
displayMessage(String.format("\n%s %s", message, "\nTry again!") );
}
}
catch (ClassNotFoundException | EOFException ex)
{
System.out.printf("\nend of registering");
// Logger.getLogger(ClientJFrame.class.getName()).log(Level.SEVERE, null, ex);
//eofReached = true;
}
cout("registering");
} while(!logged && !eofReached);
}
答:
0赞
Sildoreth
2/21/2015
#1
在代码示例中,您似乎拥有了所需的一切。只需取消注释您正在设置的行。eofReached
评论
0赞
user2735714
2/21/2015
是的,但是如果 eofReached 等于 true,那么如果我收到异常,我将退出循环,并且我将无法继续从输入中读取
0赞
Ian McLaird
2/21/2015
但是,如果您已经到达了 eof,那么就没有输入可供阅读了,因此您就完成了。
0赞
user2735714
2/21/2015
#2
好吧,我发现了我的错误。问题在于服务器中没有这样的相应循环来回答所有请求。这就是我得到例外的原因。
评论