通过一些教程去约插座,我把未来整个代码那样:Java:阅读循环如何逃脱?
while(true){
socket.receive(packet);
String message = new String(packet.getData(),0,packet.getLength(), TEXT_ENCODING);
System.out.println(message);
}
的问题是:如何离开这个循环?只有通过catch,一旦receive()完成了?
更确切地说,这里是我做了什么:
while(true) {
try {
socket.receive(answer);
resultString = new String(answer.getData(), 0, answer.getLength(), "ASCII");
if (isMyIdentifier(resultString)) {
gatewayIP = answer.getAddress().getHostAddress();
return true;
} else {
return false;
}
}
catch (SocketTimeoutException e) {
throw new GatewayNotReachableException();
}
}
,但我一直想出一个TimeoutException,虽然读是正确的。所以我想知道,如果例外是'预期'的方式离开。尽管我认真地怀疑...和socket.receive(packet)是什么,抛出了异常。
您可以使用'break'声明:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html – 2012-08-07 12:50:53
没有'catch'在此代码。 – 2012-08-07 12:51:32
@HunterMcMillen他不问他如何能完成工作,他问的是代码(取自教程)是如何工作的。 – 2012-08-07 12:51:39