본문 바로가기
혼자서 개발새발

JAVA) 예외 처리를 이용해 중복 이름 거르기

by 휴일이 2022. 10. 13.

예외 처리로

중복 값을 받지 않는 코드를 작성했다

 

 

 

추가 메소드(중복이 발생되면 오류를 던짐)

    public void add(Scanner sc) throws Exception { //자길 불러온 메소드로 오류를 던짐
        System.out.println("이름");
        String name = sc.next();
        System.out.println("전화");
        String tel = sc.next();
        System.out.println("주소");
        String address = sc.next();

        for(Member m : list) { //list에 있는 객체 한번씩 확인
            if(m.getName().equals(name)) { //객체에 있는 이름과 사용자가 쓴 이름이 같다면
                throw new Exception(); //오류 발생
            }
        }

        list.add(new Member(name,tel,address));
    }

 

 

 

받은 메소드

    public void menuProcess(Scanner sc) {
        boolean flag = true;
        int i=0;
        while(flag) {
            System.out.println(menuStr);
            i = sc.nextInt();
            switch (i) {
                case 1: //추가
                    try { //별 일 없으면 추가 실행
                        add(sc);
                    } catch(Exception e) { //오류가 발생하면 중복 실행 후 메뉴로 돌아감
                        System.out.println("이름이 중복됨");
                    }
                    break;
                case 2:
                    search(sc);
                    break;
                case 3:
                    edit(sc);
                    break;
                case 4:
                    remove(sc);
                    break;
                case 5:
                    print();
                    break;
                case 6:
                    flag=false;
                    break;
            }
        }
    }

 

 

결과

중복되면 추가가 되지 않는다

 

 

사용자 정의 오류는 다음에 만들어보아야겠다

728x90