String url = getUrl();
try{
Connection con = getConnection(url, username, pwd);
}catch(ConnectionException e){
cleanUpUrl(url);
url = getUrl();
con = getConnection(url, username, pwd);
}
我必須做類似上面的事情。如果我沒有通過一個網址獲得連接,那麼我會嘗試使用另一個網址。同樣的,我還有10個URL需要依次嘗試。遞歸方法調用
我將如何遞歸編寫該方法?
getUrl()
具有讀取屬性文件的邏輯,給你隨機URL出10 cleanUpUrl(url)
有事情做與設置URL的到期時間,如果該URL是無效的,一些屬性將被設置等等等。
編輯:對不起,我想我錯過了什麼。遞歸,因爲我已經做了方法調用,直到(我得到連接)或(所有的URL都是無效的,並拋出了一個不同的異常)。循環10次可能沒有幫助,因爲getUrl()的隨機邏輯可能會多次選擇相同的URL。
以下是否有意義?
Connection con = null;
do{
String url = getUrl();
try{
Connection con = getConnection(url, username, pwd);
}catch(ConnectionException e){
cleanUpUrl(url);
continue;
}catch(Exception e){
return null;
}
}while(con !=null);
當所有的URL都無效時,getUrl()會拋出異常。
爲什麼你想要遞歸地做這件事? – 2010-08-10 12:19:42
遞歸原理之一是你需要一個停止條件。你需要定義你會做多少次嘗試。如果您隨機獲取網址,則在檢查全部10個網址之前,您可能會收到一個StackOverflow。 – 2010-08-10 12:36:48
@Fernando:同意。這裏停止條件是 - 我得到一個連接或getUrl()拋出異常。 – HanuAthena 2010-08-10 12:39:42