1
votes

Gestion des exceptions InputMismatchException dans mon programme? - JAVA

Désolé, mais je suis encore très nouveau dans Java et j'ai essayé de comprendre cela avec l'aide en ligne. J'essaye un essai / attrape pour manipuler InputMismatchException après "Entrez les notes de devoirs pour les étudiants" (au cas où ils entreraient une lettre plutôt qu'un nombre). Cela ne fonctionne pas jusqu'à présent. À quoi devrait ressembler le code pour accomplir cela?

package exceptionHandling;
import java.util.Scanner;
import java.util.InputMismatchException;

public class ExceptionHandling {

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    double total=0;     
    System.out.println("Enter the number of homework assignments:");
    int homeworkGrades = scan.nextInt();
    double hw[]=new double[homeworkGrades];

    System.out.println("Enter the homework grades for the student:");
    for (int hw2=0;hw2<hw.length;hw2++){
        hw[hw2]=scan.nextDouble();
    }
        for(int i=0;i<hw.length;i++){
            total=total+hw[i];
        }   

    scan.close();
    double average=total/homeworkGrades;
    System.out.println("The average homework grade is "+average);
    if (average < 101 && average >= 90) {
        System.out.println("A");
    }
        else if (average < 90 && average >= 80) {
            System.out.println("B");
        }
            else if (average < 80 && average >= 70) {
                System.out.println("C");
            }
            else if (average < 70 && average >= 60) {
                System.out.println("D");
            }
            else if (average < 60) {
                System.out.println("F");
        }
}

}

J'obtiens toujours le InputMismatchError même si j'essaye de trouver le code pour le "Entrez les notes des devoirs pour les étudiants ". J'essaye d'insérer le try and catch à différents endroits et j'utilise un code différent mais pas de chance.

EDIT: Non les gars, le scanner en double n'est pas mon problème. Je ne parviens pas à gérer avec succès InputMismatchException et j'essaye de le faire depuis plusieurs heures. S'il vous plaît aider!


3 Réponses :


1
votes

Vous pouvez utiliser .hasNextDouble (), .hasNextInt (), etc. pour vérifier s'il y a un autre double si vous ne voulez pas traiter l'erreur d'exception.


1 commentaires

Eh bien, je suis obligé de gérer cette exception. Je dois donc m'en occuper.



0
votes

Vous pouvez modifier votre code avec: Ancien code: hw [hw2] = scan.nextDouble ();

Nouveau code: hw [hw2] = Double.valueOf (scan.next (). trim ());


0 commentaires

0
votes

Ma suggestion est de scanner d'abord l'entrée en tant que String puis de voir si elle peut être formulée comme int ou double :

int val = Integer.parseInt(test);


0 commentaires