Erreur exception java
lolo
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'ai créer une exception qui se lève lorsque je fait une division par zéro aucune erreur est dans les deux classe mais pourquoi l'orsque l'exception se lève il ne m'affiche pas le message d'erreur
voici la classe de l'exception
package testmaexception;
public class divo extends Exception{
public void affichex(){
System.out.println("b ne peut pas etre egale a zero");
}
}
et voici l'autre classe dans la quel je test cette exception
package testmaexception;
import java.util.Scanner;
public class Testmaexception {
public static void affichdiv() throws divo{
int a,b;
Scanner c1 = new Scanner(System.in);
System.err.println("donner un premier entier");
a=c1.nextInt();
System.err.println("donner un deuxieme entier");
Scanner c2 = new Scanner(System.in);
b=c2.nextInt();
if(b<0)
throw new divo();
else
System.out.println("voici le resultat "+a/b);
}
public static void main(String[] args) {
try{
affichdiv();}
catch(divo e){
System.out.println("b ne peut pas etre egale a zero");
}
}
}
j'ai créer une exception qui se lève lorsque je fait une division par zéro aucune erreur est dans les deux classe mais pourquoi l'orsque l'exception se lève il ne m'affiche pas le message d'erreur
voici la classe de l'exception
package testmaexception;
public class divo extends Exception{
public void affichex(){
System.out.println("b ne peut pas etre egale a zero");
}
}
et voici l'autre classe dans la quel je test cette exception
package testmaexception;
import java.util.Scanner;
public class Testmaexception {
public static void affichdiv() throws divo{
int a,b;
Scanner c1 = new Scanner(System.in);
System.err.println("donner un premier entier");
a=c1.nextInt();
System.err.println("donner un deuxieme entier");
Scanner c2 = new Scanner(System.in);
b=c2.nextInt();
if(b<0)
throw new divo();
else
System.out.println("voici le resultat "+a/b);
}
public static void main(String[] args) {
try{
affichdiv();}
catch(divo e){
System.out.println("b ne peut pas etre egale a zero");
}
}
}
A voir également:
- Erreur exception java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Si l'exception doit être levée lorsque b=0,ça n'a pas de sens de mettre if (b<0)
Remarques :
1) Il n'est pas nécessaire de créer un nouveau Scanner à chaque fois que tu fais une entrée, System.in est unique, donc son flux aussi, là tu te compliques la vie.
2) Si tu veux créer une exception, autant la faire correctement, il faut que tu redéfinisses les constructeurs, parce que ce sont eux qui feront le comportement de la méthode, ton "affichex" ne sert à rien...
Remarques :
1) Il n'est pas nécessaire de créer un nouveau Scanner à chaque fois que tu fais une entrée, System.in est unique, donc son flux aussi, là tu te compliques la vie.
2) Si tu veux créer une exception, autant la faire correctement, il faut que tu redéfinisses les constructeurs, parce que ce sont eux qui feront le comportement de la méthode, ton "affichex" ne sert à rien...
Salut,
Comment peux-tu dire qu'il n'y a pas d'exception quand tu divises par zéro ?
As tu au moins entré 0 lors de la demande du deuxième entier ?
Je t'assure que sans modifier ton programme une exception sera bien levée si tu saisis 0 pour ce second entier à l'exécution de
System.out.println("voici le resultat "+a/b);
Et n'oublie pas que <0 n'est pas == 0 et que le diviseur peut être négatif comme le dividende bien entendu...
Amuse toi aussi à entrer un divideur négatif...
Il est important que tu saches que pour qu'une exception soit levée il faut que la cause de cette levée existe, soit dans ce cas, que la division par zéro se produise.
Ensuite il te restera à suivre les recommandations de KX.
Dan
Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
Comment peux-tu dire qu'il n'y a pas d'exception quand tu divises par zéro ?
As tu au moins entré 0 lors de la demande du deuxième entier ?
Je t'assure que sans modifier ton programme une exception sera bien levée si tu saisis 0 pour ce second entier à l'exécution de
System.out.println("voici le resultat "+a/b);
Et n'oublie pas que <0 n'est pas == 0 et que le diviseur peut être négatif comme le dividende bien entendu...
Amuse toi aussi à entrer un divideur négatif...
Il est important que tu saches que pour qu'une exception soit levée il faut que la cause de cette levée existe, soit dans ce cas, que la division par zéro se produise.
Ensuite il te restera à suivre les recommandations de KX.
Dan
Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.