String url = getUrl();
try{
Connection con = getConnection(url, username, pwd);
}catch(ConnectionException e){
cleanUpUrl(url);
url = getUrl();
con = getConnection(url, username, pwd);
}
我要做上面的事情。如果我没有获得一个URL的连接,那么我将尝试使用另一个URL。同样有10URL我要一个接一个地尝试。
如何以递归方式编写方法?
getUrl()
具有读取属性文件的逻辑,并为您提供10个随机URL。
cleanUpUrl(url)
与设置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);
当所有网址无效时,getUrl()将抛出异常。
答案 0 :(得分:6)
递归?为什么呢?
如果你想连续尝试10件事,请使用for循环。
答案 1 :(得分:1)
我会在方法中放置“搜索正确的url”,循环代码10次,然后返回你发现适合打破循环的url。 (在循环下方,您可以返回null以指示10个网址中没有一个是合适的。)
像
这样的东西public String findGoodUrl() {
for (int i = 0; i < 10; i++) {
String url = getUrl();
try{
Connection con = getConnection(url, username, pwd);
return url;
} catch(ConnectionException e) {
cleanUpUrl(url);
}
}
return null;
}
答案 2 :(得分:1)
什么是停止条件,堆栈溢出?
如果你创建了一个“while”循环会不会很重要?