en fait si tu me permets, analyse ton code avec moi.
1. Le point d'entrée d'exécution de ton application (si petite soit elle c'en est une) est la fonction main qui recoit un argument de type tableau inArg. Cet argument contient les valeurs passées en paramètres de ligne de commande.
java exercice<espace 1..P><argument 1><espace 1..P><argument N>..
ex1: java exercice -> aucun argument
ex2: java exercice A -> 1° argument=A
ex3: java exercice A B -> 1° argument=A , 2° argument=B
ex4: java exercice "Ah que coucou" lomu5 -> 1° argument=Ah que coucou , 2° argument=lomu5
...
rem: remarque bien les ".." du 1° argument
Donner des arguments t'assure que les accés au tableau inArg plus bas se feront correctement dans le respect des indices. Ici tu en demandes 2 (inArg[0] et inArg[1]). Tu dois donc en passer au moins 2.
2. Le type des arguments. Tu effectues un calcul sur des nombres. Il te faut donc passer en argument des nombres en relations avec ton calcul. En java (comme bcp d'autres langages) tout processing "hors norme" génère une exception, c'est à dire que si tu demandes à l'exécuteur de ton code (ici java.exe) quelque chose d'interdit, il te le signifiera.
ex1: java exercice 10 5 -> arguments et calcul possible
ex2: java exercice 0 123 -> arguments incorrect car dénominateur=0
ex3: java exercice Ah 12 -> 1° arguments incorrect (une String) -> exception générée = java.lang.NumberFormatException
ex4: java exercice 1 -> aucun argument ou un seul-> exception java.lang.ArrayIndexOutOfBoundsException
Rajoute donc cette ligne pour t'aider à visualiser tes arguments et jouer .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class exercice
{
public static void main(String[] inArg) {
for (int i=0;i<inArg.length;i++) System.out.println("arg :\t"+i+" -> "+inArg[i].toString());
int e;
int b;
e = Integer.parseInt(inArg[0]);
b = Integer.parseInt(inArg[1]);
double d = -b / (double) e;
System.out.println("x=" + d);
}
} |
.. puis rajoute ce bloc pour gérer une exception toi même ...
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
|
public class exercice
{
public static void main(String[]inArg)
{
for (int i=0;i<inArg.length;i++) System.out.println("arg :\t"+i+" -> "+inArg[i].toString());
int e,b;
try
{
e=Integer.parseInt(inArg[0]);
b=Integer.parseInt(inArg[1]);
double d=-b/(double)e;
System.out.println("x="+d);
}
catch (Exception ex)
{
System.out.println("Mon exception: -> "+ex.toString());
//ton code ici de gestion de l'exception ...
}
}
} |
Voilà, sinon n'oublie pas de rergarder les tutoriels de ce forum ils sont une référence.
Partager