Обработка исключений с использованием ArrayList с Java - PullRequest
0 голосов
/ 20 сентября 2018

Я начал работать над Java несколько месяцев назад, сейчас я застрял в обработке исключений, и мне нужно, чтобы каждый StudentId, TeamID должен был бросить один раунд проверки исключений, чтобы, если пользователь вводит алфавитвместо целого числа он должен отправить обратно в то же место, чтобы снова запросить это значение.Я использую ArrayList для хранения данных.Также все get ********** () методы находятся в другом классе под названием Student . studentList - моя переменная для доступа к моему ArrayList

. Пожалуйста, помогите мне найти, где находится моя ошибка, исправив ее, чтобы моя концепция стала более понятной.Я застрял здесь

/***
 * A method to check if the same Student ID exists in the ArrayList previously
 * @param StudentId
 * @return
 */

public static boolean checkStudent(int StudentId) {

    for (Student stud : studentList) {
        if(stud.getStudentId() == StudentId) {
            return true;
        }
    }
    return false;
}

/***
 * Method to add student in the ArrayList
 * @param scn
 */

public static void addStudent(Scanner scn) {

    System.out.println("Enter student ID");
    int studentId;
    studentId = scn.nextInt();
    **//enter the try catch statement here 
    //ask the user to write the integer not string and revert to this scanner variable**
    if (checkStudent(studentId)) {

        System.out.println("Student Id " + studentId + " already exists,Please enter the valid details ");

        addStudent(scn);


        //break;
   }else{
       System.out.println("Enter student name:");
       String studentName;
       studentName = scn.next();
       System.out.println("Enter team ID:");

        **try{
        int teamId;
       teamId = scn.nextInt();
        //ask the user to write the integer not string and revert to this scanner variable
       }catch(NumberFormatException e){
           //
       }finally{
        //do something    
        }**

        System.out.println("Enter team name:");
       String teamName;try{
       teamName = scn.next();    
       }


       Student std = new Student(studentId, studentName, teamId, teamName);
       studentList.add(std);

       System.out.println("*******************************************");
       System.out.println("student with Student ID" + studentId +" added succesfully");
       System.out.println("*******************************************");   
   }
}  

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я дам вам еще одну подсказку, используя цикл while, вы можете дополнительно реализовать эту логику в соответствии с вашими требованиями.Вы можете использовать это, прежде чем позвонить checkStudent()

System.out.println("Enter student ID");
while (true) {
    try {
        int studId= scn.nextInt();
        // terminate loop if everything is ok  
        break;
    } catch (NumberFormatException e) {
        // on an exception, loop still continues
    }
}
0 голосов
/ 20 сентября 2018

Пожалуйста, прочитайте оператор try..catch в спецификации языка Java или любой учебник (вы можете найти его, набрав "java try catch" в вашей любимой поисковой системе).

Я уверен, что вы можете понять это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...