System.exit(0) n'arrête pas le programme ... ??
Fermé
gacki
Messages postés
109
Date d'inscription
mardi 23 avril 2013
Statut
Membre
Dernière intervention
15 mars 2016
-
29 déc. 2013 à 22:11
gacki Messages postés 109 Date d'inscription mardi 23 avril 2013 Statut Membre Dernière intervention 15 mars 2016 - 30 déc. 2013 à 00:54
gacki Messages postés 109 Date d'inscription mardi 23 avril 2013 Statut Membre Dernière intervention 15 mars 2016 - 30 déc. 2013 à 00:54
3 réponses
gacki
Messages postés
109
Date d'inscription
mardi 23 avril 2013
Statut
Membre
Dernière intervention
15 mars 2016
29 déc. 2013 à 22:18
29 déc. 2013 à 22:18
LOL j'ai résolut le problème mais j'ai aucune idée pourquoi et comment j'ai tous simplement fait des changement dans la méthode de déplacement j'ai ajouter un System.exit(0); mais je n'arrive pas a savoir pourquoi ??
gacki
Messages postés
109
Date d'inscription
mardi 23 avril 2013
Statut
Membre
Dernière intervention
15 mars 2016
29 déc. 2013 à 22:20
29 déc. 2013 à 22:20
le code de la class Point :
est-ce-que quelqu'un pourra m'expliqué comment et pourquoi ??
class NegDepException extends Exception{
private String st;
public NegDepException(String s)
{
super(s);
st = s;
}
}
public class Point {
private double x;
private double y;
public Point(double x,double y)
{
this.x = x;
this.y = y;
}
public void deplaceX(double dx) throws NegDepException
{
if((x + dx) < 0) throw new NegDepException("erreur de deplacement suivant x");
x = x + dx;
}
public void deplaceY(double dy) throws NegDepException
{
if((y + dy) < 0) throw new NegDepException("erreur de deplacement suivant y");
y = y + dy;
}
public void deplace(double dx,double dy) throws NegDepException
{
if((x + dx) < 0 && (y + dy) < 0) throw new NegDepException("erreur dans les deux dep X et Y");
try
{
deplaceX(dx);
deplaceY(dy);
}
catch(NegDepException e1)
{
System.out.println(e1.getMessage());
System.exit(0);//c'est cella que j'ai ajouter
}
}
}
est-ce-que quelqu'un pourra m'expliqué comment et pourquoi ??
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
29 déc. 2013 à 22:21
29 déc. 2013 à 22:21
Le
System.exit(0);n'a lieu que lorsque
deplaceprovoque une
NegDepException, si tu n'as pas d'exception le programme se terminera normalement.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
29 déc. 2013 à 22:23
29 déc. 2013 à 22:23
Vu ton code de deplace, c'est parce que tu aurais du faire :
try { deplaceX(dx); deplaceY(dy); } catch(NegDepException e1) { System.out.println(e1.getMessage()); throw e1; // propage l'exception via le throws (jusqu'au main) }
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
29 déc. 2013 à 22:25
29 déc. 2013 à 22:25
Remarque : je déconseilles vivement l'usage de
System.exit, ça a peu de raison d'être en Java, il vaut mieux utiliser le mécanisme d'exception (des RuntimeException notamment)
gacki
Messages postés
109
Date d'inscription
mardi 23 avril 2013
Statut
Membre
Dernière intervention
15 mars 2016
30 déc. 2013 à 00:54
30 déc. 2013 à 00:54
ok merci beaucoup :D