지니의 개발로그
InputMismatchException 에러(TIL #24일차) 본문
🚩 20240509 TIL 내일배움캠프 #24일차
🔴 문제
성적이나 출석 회차를 입력하는 과정에서 정수가 아닌 문자열과 같은 다른 타입의 데이터를 입력하게 되면, InputMismatchException 에러가 발생했다.
🟠 분석
InputMismatchException 에러는 Scanner 클래스를 사용하여 사용자 입력을 받을 때,
사용자로부터 지정되지 않은 타입의 데이터를 입력받았을 때 발생한다.
🟡 시도
사용자로부터의 입력을 받는 부분에 예외 처리 로직을 추가했다.
예외가 발생할 때마다 sc.nextInt();를 호출하여 다음 정수를 읽으려고 했으나,
잘못된 입력을 버퍼에서 제거하지 못하였다.
버퍼에서 완전히 제거하는 방법을 찾아
sc.next();를 사용하여 잘못된 입력을 읽고 버리는 방법으로 변경했다.
🟢 배움
사용자 입력을 받을 때 그 데이터에 대한 유효성을 검사하고 처리하는 과정이 필요하다.
단순히 예외를 잡는 것뿐만 아니라, 잘못된 입력이 버퍼에 남아있지 않도록 처리해야한다.
'내일배움캠프' 카테고리의 다른 글
[Java] 버퍼의 개행문자 제거. 라인을 읽어주고 버리기 (TIL #28일차) (0) | 2024.05.14 |
---|---|
🏁 팀프로젝트 회고록 (TIL#25일차) (0) | 2024.05.10 |
[Java] 정적 타입 바인딩 (TIL #23일차) (0) | 2024.05.09 |
팀 프로젝트 시작 : 업무 분배 (TIL#14일차) (0) | 2024.05.03 |
[Java] 변수 vs 매개변수? (TIL#13일차) (0) | 2024.05.02 |