Pour cette séance il faut partir du code développé durant le tp1.
Pour chaque classe, méthode et attributs du tp1 déterminer quelles sont les visibilités envisageables. Effectuer les modifications adéquates sur le code du tp1. Noter que pour les attributs seules les visibilités private et protected vous sont autorisées. Le corrigé de cette manipulation est disponible ici
La première étape est de créer les packages suivants:
repere dans lequel vous placerez les classes Axe, Couleur, ElementRepere, EnsembleElementRepere, ElementAvecNomformes, situé dans le package repere dans lequel vous placerez les classes Segment et Pointtest dans lequel vous placerez la classe TestsBien entendu il faut ajouter les déclarations de packages ainsi que les imports nécessaires au sein des classes. Il faut aussi trouver la commande qui permet de compiler le projet et arriver à lancer le programme Tests.
Voici les déclarations et import qu'il faut utiliser:
repere la déclaration est package repere et aucun import est nécessaireformes la déclaration est package repere.formes et il faut utiliser l'import import repere.*test la déclaration est package test et il faut utiliser les imports import repere.* et import repere.formes.*Pour compiler la commande est javac test/Tests.java. Pour lancer les tests, la commande est: java test.Tests.
Nous allons rajouter des exceptions à notre programme. Nous allons vérifier que personne ne puisse créer un axe avec une taille négative. Pour cela nous allons donc créer une exception TailleInvalide qui doit être déclanchée par toutes les méthodes qui peuvent changer la taille.
Nous allons tout d'abord rendre optionnelle la gestion de l'exception en déclarant notre exception sous classe de RuntimeException. En outre l'exception doit pouvoir retenir la taille éronnée demandée par l'utilisateur, et comporter un message qui explique l'erreur de manière intuitive. Commencez par définir cette exception.
public class TailleInvalide extends RuntimeException {
private int mauvaiseTaille;
public TailleInvalide(int mauvaiseTaille) {
super("La taille de l'axe ne peut être négative. Taille fournie: " + mauvaiseTaille);
this.mauvaiseTaille = mauvaiseTaille;
}
}
Modifiez maintenant le code du tp 1 pour que toutes les méthodes qui peuvent changer la taille d'un axe lancent l'exception en cas de taille éronée. Faîtes une nouvelle classe de test dans le package test qui crée un axe avec une taille négative. Lancez le programme. Que se passe t'il?
Le programme soulève une erreur d'exécution. Le message de l'exception passé au super constructeur de l'exception s'affiche.
Modifiez votre exception pour que maintenant TailleInvalide soit sous-classe de Exception. Maintenant créez deux classes de test qui crée un axe invalide et qui permettent
Version qui gère l'exception :
public class TestGestionException {
public static void main(String[] args) {
Axe x;
try {
x = new Axe(-2);
} catch (TailleInvalide e) {
System.out.println(e);
x = new Axe();
} finally {
System.out.println(x.description());
}
}
}
Version qui propage l'exception :
public class TestGestionException {
public static void main(String[] args) throws TailleInvalide {
Axe x = new Axe(-2);
}
}
Personal website by Jean-Rémy Falleri is licensed under CC BY-NC-SA 4.0