Bonjour,
j'ai 1 petit problème pour afficher 1 message défini par moi-même lors de l'interception d'une exception, avec un bloc try/catch.
En fait le message affiché, est tjs le message défini dans ma sous-classe perso de Exception (classe TropDeVélosException), et ça indépendamment des messages de remplacement définie dans ma classe principale (classe MoteurVelo)
Dans mon programme ci-dessous, il y a 2 possibilités après l'appel de la méthode vérifierCommande(String, double) :
- soit la méthode se déroule sans problème (les conditions du if (modele ="bleu" et qte > 10) ne sont pas remplis, donc on ne passe pas par le catch) et j'affiche après l'appel de méthode, la phrase suivante :
System.out.println("Vous avez commandé : " + Qte + " modèle(s) " + Modele);
- soit la méthode remplit les conditions du if (modèle + qte) et là, normalement, je devrais remplacer mon message que retourne l'exception de la classe TropDeVélosException c'est à dire :
super("Impossible de livrer autant de vélos en une fois.")
par le message dans ma méthode vérifierCommande(string double)
throw new TropDeVélosException("Vous avez commandé : " + quantité + " modèle(s) " + modèleVélo + " C'est trop !!!!");
sauf que quand je passe effectivement dans mon If modele == bleu && qte >10 mais le message affiché est tjs le message par défaut de l'exception c'est à dire :
super("Impossible de livrer autant de vélos en une fois.")
est-ce que qqn aurait 1 idée pk je ne peux pas définir mon message d'erreur dans mon exception ???
j'espère avoir été assez clair, merci d'avance.
classe MoteurVelo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
public class MoteurVelo implements ActionListener
{
public void actionPerformed(ActionEvent événement)
{
// on reprend les infos
String Modele = "test";
String Qte = 5;
try
{
vérifierCommande(Modele,qte);
System.out.println("Vous avez commandé : " + Qte + " modèle(s) " + Modele);
}
catch(TropDeVélosException e)
{
System.out.println(e.getMessage());
}
}
void vérifierCommande(String modèleVélo, double quantité) throws TropDeVélosException
{
if (modèleVélo.equals("bleu") && quantité > 10)
{
throw new TropDeVélosException("Vous avez commandé : " + quantité + " modèle(s) " + modèleVélo + " C'est trop !!!!");
}
}
} |
classe TropDeVélosException (ma propre classe Exception)
1 2 3 4 5 6 7 8
| class TropDeVélosException extends Exception
{
// Constructeur
TropDeVélosException(String message)
{
super("Impossible de livrer autant de vélos en une fois.");
}
} |
Partager