Je rencontre souvent une situation où j'ai besoin d'analyser une valeur numérique (par exemple avec Integer.parseInt ou Double.parseDouble) et j'ai plusieurs valeurs. Le problème est que je me retrouve à devoir dupliquer la gestion des exceptions et ça devient moche. Par exemple, prenez le code suivant:Comment gérer les numéros d'analyse avec le même bloc catch?
double lowVal, mediumVal, highVal;
String lowString = "1.2", mediumString = "null", highString = "7.9";
try {
lowVal = parseDouble(lowString);
} catch (NumberFormatException NaN) {
//Don't care, just carry on trying to parse the rest...
}
try {
mediumVal = parseDouble(mediumString);
} catch (NumberFormatException NaN) {
//Don't care, just carry on trying to parse the rest...
}
try {
highVal = parseDouble(highString);
} catch (NumberFormatException NaN) {
//Don't care, just carry on trying to parse the rest...
}
Y a-t-il un bon modèle pour faire face à cette situation?
Je ne souhaite pas utiliser un seul déclenchement, car je souhaite continuer à analyser le reste des nombres.
Je dois mentionner que dans cet exemple, les valeurs ne sont pas initialisées mais dans le code de programme actuel elles le seraient. L'affectation ne doit avoir lieu que si les valeurs de chaîne sont analysables.
juste utiliser un try-catch pour tous les trois –
Mais je veux que le reste continue à s'exécuter. Si vous essayez de tous les analyser dans le même bloc try, à chaque fois qu'une exception est levée, comment pouvez-vous continuer à analyser le reste? –
Peut-être mettre le try-catch unique dans une boucle avec des drapeaux qui empêchent la dernière exception qui est levée de s'exécuter à nouveau. – StealthSpoder