String url = getUrl();
try{
Connection con = getConnection(url, username, pwd);
}catch(ConnectionException e){
cleanUpUrl(url);
url = getUrl();
con = getConnection(url, username, pwd);
}
Je dois faire quelque chose comme ci-dessus. Si je ne reçois pas de connexion avec une URL, je vais essayer avec une autre URL. De même, il y a 10URL que je dois essayer les uns après les autres.appels de méthode récursive
Comment vais-je écrire la méthode de manière récursive?
getUrl()
a la logique de lire le fichier de propriétés et vous donne URL au hasard sur 10. cleanUpUrl(url)
a quelque chose à voir avec le réglage de l'heure d'expiration de l'URL, si l'URL est valide, une propriété sera définie, etc.
EDIT: Désolé, je pense que j'ai raté quelque chose. Récursive parce que j'ai fait les appels de méthode jusqu'à (j'obtiens la connexion) ou (toutes les URL sont invalides et une exception différente est levée). Boucler 10times peut ne pas aider parce que la logique aléatoire de getUrl() peut choisir la même URL plus d'une fois.
Est-ce que ce qui suit a du sens? GetUrl() lancera une exception si toutes les URL ne sont pas valides.
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);
Pourquoi voulez-vous procéder de manière récursive? –
L'un des principes de récursion est que vous avez besoin d'une condition d'arrêt. Vous devez définir le nombre d'essais que vous ferez. Si vous obtenez les URL de manière aléatoire, vous pouvez obtenir un StackOverflow avant de vérifier les 10 URL. –
@Fernando: D'accord. Ici la condition d'arrêt est - j'obtiens une connexion ou getUrl() lance Exception. – HanuAthena