Test d'une exception
nini
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'ai mon programme qui n'arrive pas a s'exécuter bien alors que je n ai pas remarqué aucune erreur
package exceptioncatch;
public class ExceptionCatch {
static int moyenne (String[] liste) {
int somme=0, entier, nbNotes=0, i;
for (i=0; i<liste.length; i++)
{
try {
entier=Integer.parseInt(liste[i]);
// conversion cha^?ne en valeur enti'ere
somme += entier; nbNotes++;
}
catch (NumberFormatException e) {
System.out.println("note: "+(i+1)+" invalide");
}
}
return (somme/nbNotes);
}
public static void main (String[]argv) {
int [4] montableau = {"ha",2,4, 3.5};
System.out.println("moyenne "+moyenne(montableau));
}
}
de que je l'exécute voici se qu'il m'affiche
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - not a statement
at exceptioncatch.ExceptionCatch.main(ExceptionCatch.java:29)
Java Result: 1
s'il vous plais aider mois
merci
j'ai mon programme qui n'arrive pas a s'exécuter bien alors que je n ai pas remarqué aucune erreur
package exceptioncatch;
public class ExceptionCatch {
static int moyenne (String[] liste) {
int somme=0, entier, nbNotes=0, i;
for (i=0; i<liste.length; i++)
{
try {
entier=Integer.parseInt(liste[i]);
// conversion cha^?ne en valeur enti'ere
somme += entier; nbNotes++;
}
catch (NumberFormatException e) {
System.out.println("note: "+(i+1)+" invalide");
}
}
return (somme/nbNotes);
}
public static void main (String[]argv) {
int [4] montableau = {"ha",2,4, 3.5};
System.out.println("moyenne "+moyenne(montableau));
}
}
de que je l'exécute voici se qu'il m'affiche
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - not a statement
at exceptioncatch.ExceptionCatch.main(ExceptionCatch.java:29)
Java Result: 1
s'il vous plais aider mois
merci
A voir également:
- Test d'une exception
- Test performance pc - Guide
- Steam deck oled test - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
- Redmi note 14 4g test - Accueil - Téléphones
1 réponse
Tu n'as pas remarqué d'erreurs ? Pourtant ça pique !
Ici il ne s'agit pas d'une erreur d'exécution mais d'une erreur de compilation, sur ton main, il faut savoir distinguer ces deux types d'erreurs, c'est très différent.
La déclaration d'un tableau se fait avec les crochets mais sans avoir besoin de lui spécifier la taille puisqu'il ne s'agit que d'une référence et qu'elle peut références des tableaux de tailles différents :
Ensuite, tu as mis "ha" qui est un String, et 3.5 qui est un double, alors que tu as déclaré un int[], donc forcément ça ne peut pas fonctionner ! Si tu veux mettre des types différents dans un même tableau, utilises un tableau d'Object
Cependant tu utilises ensuite la méthode moyenne qui doit avoir un String[] en paramètre, il faut donc que montableau soit plutôt un String[]
Ici il ne s'agit pas d'une erreur d'exécution mais d'une erreur de compilation, sur ton main, il faut savoir distinguer ces deux types d'erreurs, c'est très différent.
La déclaration d'un tableau se fait avec les crochets mais sans avoir besoin de lui spécifier la taille puisqu'il ne s'agit que d'une référence et qu'elle peut références des tableaux de tailles différents :
int[] montableau
Ensuite, tu as mis "ha" qui est un String, et 3.5 qui est un double, alors que tu as déclaré un int[], donc forcément ça ne peut pas fonctionner ! Si tu veux mettre des types différents dans un même tableau, utilises un tableau d'Object
Object[] montableau = {"ha", 2, 4, 3.5};
Cependant tu utilises ensuite la méthode moyenne qui doit avoir un String[] en paramètre, il faut donc que montableau soit plutôt un String[]
String[] montableau = {"ha", "2", "4", "3.5"};
note: 4 invalide
moyenne 3
pourquoi lorsque j'ai mis ceci ça n'a pas marcher
public static void main (String[]argv) {
System.out.println("moyenne "+moyenne(argv));
}
Si tu es en ligne de commande c'est facile il faut faire : java ExceptionCatch ha 2 4 3.5
Si tu utilises un IDE il faut regarder dans les options d'exécutions pour faire l'équivalent