안녕하세요.
오늘은 과제를 진행하며 생긴 트러블슈팅 TIL을 작성해보려 합니다.
트러블 슈팅?
트러블 슈팅은 문제가 발생했을 때 원인을 찾아 해결하는 작업을 의미합니다.
이 작업을 함으로써 무제가 생겼을 때 대처할 수 있는 능력을 키울 수 있고 이 과정을 기록하여 TIL로 남김으로써 이 과정을 다시 한 번 되새기며 비슷한 문제가 생길 경우 빠르게 대처할 수 있습니다.
개요
개인 과제로 숫자로 하는 야구게임을 만들게 되었습니다.
랜덤으로 주어진 숫자가 존재하고 숫자를 입력하여 어느 숫자가 존재하며 어느 위치에 있는지를 맞추는 게임입니다.
이 과정에서 발생한 문제와 해결한 방법에 대해 적어보겠습니다.
트러블 슈팅
배경
초기 세팅으로는 게임의 난이도가 3으로 고정이었습니다.
하지만 추가 지문으로 게임의 난이도를 3 ~ 5 사이로 사용자가 직접 선택이 가능하도록 변경하게 되었습니다.
발단
난이도를 조절하기 위해 사용자가 입력하는 부분에서 입력값이 숫자가 아닌 경우 예외처리가 필요했습니다.
전개
먼저 게임의 난이도인 3 ~ 5 사이의 숫자를 입력했는지를 확인하고 이 외에는 잘못된 입력으로 처리하고자 했습니다.
위기
하지만 애초에 숫자가 아닌 문자가 입력된 경우에는 조건문 자체도 오류가 발생했습니다.
절정
때문에 3 ~ 5 사이의 숫자를 입력했는지 확인하기 전에 먼저 문자인지 숫자인지 확인하는 작업이 필요했습니다.
try { } catch () { }
try와 catch는 예외처리를 위해 사용됩니다.
try {
// 예외가 발생할 수 있는 코드
} catch () {
// 예외 발생 시 실행
}
try { }
-. 예외가 발생할 수 있는 코드를 포함합니다.
-. 이 블록 내부에서 예외가 발생할 경우 catch 블록으로 넘어갑니다.
catch ( ) { }
-. try 블록에서 발생한 예외를 처리합니다.
-. 특정 타입의 예외를 처리하기 위해 catch 블록에 해당 예외 타입을 명시해야 합니다.
-. 여러 개의 catch 블록을 사용하여 서로 다른 예외를 처리할 수 있습니다.
이를 통하여 입력값이 숫자가 아닌 경우 예외처리를 할 수 있게 되었습니다.
try {
difficultNumber = scanner.nextInt();
scanner.nextLine();
} catch (InputMismatchException e) {
msg.errInputMessage();
scanner.nextLine();
continue;
}
결말
사실 이 과정을 겪기 전까지는 try ~ catch에 대해서 확실하게 이해하지는 못했습니다.
하지만 이렇게 직접 오류를 겪고 오류를 해결하기 위해 직접 사용해보니 한결 이해하기 쉬워졌습니다.
마무리
트러블 슈팅 요약
1. 고정 난이도에서 사용자가 난이도를 조절할 수 있게 변경하였습니다.
2. 난이도를 사용자가 입력하기 때문에 잘못된 입력인 경우 예외처리가 필요했습니다.
3. 기존에 사용하던 if 조건문으로 예외처리를 하고자 하였으나 문자가 입력된 경우 오류가 발생하였습니다.
4. try ~ catch 를 사용하여 문자가 입력된 경우의 예외처리를 성공하였습니다.
저처럼 처음 개발을 접하시는 분들도 이 글을 보시고 조금이나마 도움이 되길 바라겠습니다.
'내일배움캠프 > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] 2024. 09. 24. TIL (0) | 2024.09.24 |
---|---|
[내일배움캠프] 2024. 09. 23. TIL (0) | 2024.09.23 |
[내일배움캠프] 2024. 09. 19. TIL (0) | 2024.09.19 |
[내일배움캠프] 2024. 09. 13. TIL (0) | 2024.09.13 |
[내일배움캠프] 2024. 09. 12. TIL (0) | 2024.09.12 |
댓글