1. 개요
키오스크 만들기 과제(Lv.4)를 진행하며, 겪은 이슈를 다뤄보겠습니다.
2. 트러블 슈팅
● 배경
Kiosk 클래스의 start 함수에 예외 처리가 안된 부분을 발견했습니다.
● 발단
예외 처리가 되지 않아서 정해진 값 외의 숫자 또는 문자가 입력되었을 때 프로그램이 종료되었습니다.
● 전개
계산기 과제 때 구현하지 못한 try catch문을 시도했으나 아래 코드에서 오류가 발생했습니다. 원인은 finally 때문이었습니다. finally는 예외의 발생 여부와 상관없이 무조건 실행되는 코드가 들어가는 블럭이어서 정확한 값이 입력이 되어도 다시 continue가 되었습니다.
● 위기
finally를 삭제하였는데 catch에서 아래와 같이 위 내용이 멈추지 않고 계속 반복되었습니다.
● 절정
원인은 menuInput의 값 버퍼를 비우지 않아서 처음 입력받은 값을 계속 유지하였기 때문입니다. 그래서 menuInput을 try 안에 넣고 catch에 sc.nextLine을 추가하였습니다. 또한, 정해진 숫자 외의 값을 받았을 때에도 예외 처리가 되도록 else if를 추가하였습니다.
● 결말
즉, 정해진 숫자 외의 숫자가 입력되면 else if에서 처리하고 문자열이 입력되면 catch에서 처리하여 다시 값을 입력받도록 하였습니다.
3. 마무리
이번 과제를 통해 배우고 적용한 try catch문을 다음에도 사용할 수 있겠습니다. 아쉬운 점은 콘솔에 출력되는 내용이 깔끔하면 좋겠습니다. 현재 버거 메뉴는 깔끔하게 나오지만 음료와 디저트 메뉴는 같은 함수로 출력했으나 간격이 맞지 않습니다. 해당 문자열의 길이가 너무 짧아서 그런 것 같은데 추후에 개선 방안을 생각해 보겠습니다.
'개발 > 부트캠프' 카테고리의 다른 글
본캠프 : Spring 기초_2주차 (1) | 2025.01.22 |
---|---|
본캠프 : Spring 기초_1주차 (0) | 2025.01.20 |
본캠프 : 베이직반 특강_1회차 세션 정리 (0) | 2025.01.19 |
본캠프 : Java 예외처리 (0) | 2025.01.17 |
본캠프 : 개인 과제(계산기 만들기)_1:1 피드백 (0) | 2025.01.16 |