L'objectif de l'exemple est le même que celui de l'exemple sur sur la façon d'attraper une exception : il s'agit d'écrire une méthode moyenne qui calcule la moyenne d'entiers reçus en paramètre par un tableau de chaînes de caractères. Les chaînes ne représentant pas un entier (et donc erronées) doivent être ignorées. Néanmoins, on veut de plus que la méthode moyenne lance une exception de type ExceptionRien si aucune chaîne de caractères n'est valide afin d'éviter la division pr zéro. Une méthode main dans la classe EssaiLance permet de tester la méthode moyenne dela classe Lance.
public class Lance {
static int moyenne(String[] liste) throws ExceptionRien {
int somme = 0, nbEntiers = 0;
for (String chaine : liste) {
try {
somme += Integer.parseInt(chaine);
nbEntiers++;
}
catch (NumberFormatException e) {
System.out.println(chaine + " n'est pas entier");
}
}
if (nbEntiers == 0) throw new ExceptionRien(liste.length);
return somme/nbEntiers;
}
}
class EssaiLance {
public static void main(String[] arg) {
try {
System.out.println("La moyenne est " + Lance.moyenne(arg));
}
catch (ExceptionRien e) {
e.printStackTrace();
}
}
}
Pour : java ExceptionThrows ha 15.5, on obtient :
ha n'est pas entier
15.5 n'est pas entier
ExceptionRien : aucune des 2 chaines n'est valide
at Lance.moyenne(Lance.java:15)
at EssaiLance.main(Lance.java:23)
Pour accéder au fichier Lance.java.
© Irène Charon Télécom ParisTech 2010