通過一些教程去約插座,我把未來整個代碼那樣: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