MrLoveDaddy
Messages postés3Date d'inscriptionvendredi 7 mai 2010StatutMembreDernière intervention 7 mai 2010
-
7 mai 2010 à 00:32
MrLoveDaddy
Messages postés3Date d'inscriptionvendredi 7 mai 2010StatutMembreDernière intervention 7 mai 2010
-
7 mai 2010 à 10:47
Bonjour tout le monde,
Décidémment j'ai un petit problème, je n'arrive pas à capturer une exception pourtant toute simple.
Soit une classe abonné. Un abonné a un prénom et un nom : Abonne(prénom,nom)
Je veux que le programme me retourne une exception lorsque j'ajoute un abonné avec le prénom "toto".
Lorsque je tape ceci tout se passe bien , l'exception est capturée :
Abonne b = new Abonne ("toto","tata");
Par contre dès que je demande à l'utilisateur de rentrer le nom "toto", alors rien ne va plus et l'abonné est accepté avec son nom "toto", l'exception n'existe pas !!
Abonne b ;
Scanner sc = new Scanner (System.in);
String b = sc.next();
try {
b=new Abonne (b,"lolo");
} catch (NomAbonneException e) {
e.printStackTrace();
}
Désolé si c'est une erreur de débutant.
Merci d'avance.
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 7 mai 2010 à 09:54
Salut,
Regarde ton test sur "toto". Je soupçonne l'utilisation de l'opérateur ==.
Dans ce cas le compilateur va considérer comme identiques deux chaînes "toto" en dur dans le code car elles pointent sur le même objet, en revanche la chaîne saisie par l'utilisateur est bien sûr un objet différent. Il faut utiliser la méthode equals dans ton cas, et dans le doute en général.