커머스 과제

정채림·2026년 1월 22일

트러블 슈팅

예외처리

try{
	cmd = sc.nextInt();
}catch(InputMismatchException e){
	System.out.println("올바르지 않은 입력입니다. 숫자를 입력해주세요.");
}
  • 예외처리를 했을 때, 무한루프가 발생했다.

-> 이유 : nextInt()의 버퍼에 이미 잘못 입력된 값이 남아있었기 때문
-> 해결법: 버퍼를 한 번 비워준다.

수정한 코드

try{
	cmd = sc.nextInt();
}catch(InputMismatchException e){
	System.out.println("올바르지 않은 입력입니다. 숫자를 입력해주세요.");
    sc.nextLine(); // 버퍼를 비워준다.
    continue;
}

출력 형식

System.out.printf("%d. %s | %d원 | %s%n",
                            i+1,
                            p.getProductName(),
                            p.getPrice(),
                            p.getDetails());

이러면 글자수에 따라 '|'의 위치가 바뀌어 예쁘게 정렬되지 않았다.

-> 해결법: 공백을 미리 확보한다.

수정한 코드

System.out.printf("%d. %-15s | %,10d원 | %s%n",
                            i+1,
                            p.getProductName(),
                            p.getPrice(),
                            p.getDetails());
                }

0개의 댓글