Académique Documents
Professionnel Documents
Culture Documents
TD n° 5
(Exceptions)
Exercice 1 :
Somme des arguments de la ligne de commande
1-Ecrire une classe Somme qui permet d’afficher la somme des nombres réels donnés en argument de la ligne
de commande.
Par exemple, « java Somme 10 15.5 4 » affiche 29.5.
2-L’exécution de java Somme 10 x 3 affiche ce qui suit dans le terminal :
Exception in thread "main" java.lang.NumberFormatException: For input string: "x"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at Somme.main(Somme.java:8)
Expliquer comment interpréter cet affichage pour comprendre ce qu’il s’est passé.
3-Modifier la classe Somme pour afficher la somme de tous les arguments de la ligne de commande en ignorant
ceux qui ne sont pas réels. On indiquera le nombre de données ignorées.
> java Somme 10 x 3 y
13.0
Nombre de données ignorées : 2
> java Somme 10 3
13.0
Exercice 2 :
Toutou est une classe avec deux propriétés privées String nom et int nombrePuces. Ecrire un constructeur
public Toutou (String n, int np) qui propage des exceptions de type IllegalArgumentException lorsque le nom n
est null ou lorsque le nombre de puces np est négatif.
Utiliser ce constructeur dans une méthode main pour contrôler les appels new Toutou ("milou", 4) et new
Toutou ("medor", -11) et afficher les erreurs éventuelles lors de l’exécution des constructeurs.
Exécution :
Ecrire une classe Pile qui implémente une pile de String avec un tableau de taille fixe. Définir pour cela deux
exceptions PilePleine et PileVide. Utiliser pour écrire les méthodes, l’exception ArrayOutOfBoundsException
qui indique qu’on a tenté d’accéder à une case non définie d’un tableau.
Ecrire une méthode main qui empile les arguments de la ligne de commande et qui les réécrit dans l’ordre
inverse.
Exercice4 :
catch(Essai1Exception e){
System.out.println("Catch Essai1 : "+e.getMessage());
}
catch(Exception e){
System.out.println("Catch Exception : "+e.getMessage());
}
finally{
System.out.println("Finally de main");
}
}
}
}
2- Et celui-ci ?
}
catch(Essai2Exception e){
System.out.println("Catch Essai2 : "+e.getMessage());
}
catch(Exception e){
System.out.println("Catch Exception : "+e.getMessage());
}
finally{
System.out.println("Finally de main");
}
}
}
}
Exercice 5 :