2025.03.19 - [TIL(Today I Learned)] - [TIL-013] Dart로 콘솔 텍스트 게임 만들기-1
[TIL-013] Dart로 콘솔 텍스트 게임 만들기-1
개요프로그램에서 비동기와 예외 처리는 매우 중요하다.그래서 비동기와 예외 처리를 익히고 익숙해지기 위해 콘솔 텍스트 게임을 만들어 보자. 기능캐릭터/몬스터가 턴을 교환하여 전투를 할
skyhyunjinlee.tistory.com
문제 발생
마지막 남은 몬스터를 처치하면 터미널에 원일 모를 에러가 계속 출력이 되는 상황
발생 이유 추측
에러에 `RangeError` 라는 단어가 있는 것을 보면 범위가 잘못 지정된 탓인 것 같다.
범위 관련된 것은 `Random`클래스 밖에 없어서 아마 `Random`클래스 쪽이 문제인 것 같았다.
에러의 내용을 검색해보니 `Random().nextInt(int)`에서 int가 0이면 발생하는 문제라고 한다.
그럼 원인은 `monsters.length`가 0이 됐을 때 에러가 발생하는 것이다.
해결 방법
에러의 원인을 몰라 한참을 헤맸지만, 해결 방법은 의외로 간단했다.
조건문을 추가해 monsters.length > 0일 때만 `getRandomMonster` 메서드를 호출하도록 수정하니 문제가 깔끔하게 해결되었다.
마무리(느낀 점)
이전에는 에러를 미리 예측하고 해결하면서 아주 좋은 쾌감을 느꼈는데, 이번에는 비교적 쉬운 부분에서 놓친 게 아쉬웠다.
사소한 실수 하나가 예기치 않은 오류로 이어질 수 있다는 걸 다시 한번 깨달았고, 에러를 예방하는 것도 중요하지만 빠르게 해결하는 능력도 함께 키워야겠다는 생각이 들었다.
앞으로 더 성장할 수 있도록 꾸준히 노력해야겠다.
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL-016] Flutter App은 스크롤 생성이 자동이 아니다 (0) | 2025.03.27 |
---|---|
[TIL-015] Mac OS 단축키 (0) | 2025.03.23 |
[TIL-013] Dart로 콘솔 텍스트 게임 만들기-1 (0) | 2025.03.19 |
[TIL-012] 내가 모르는 메서드를 잘 사용할 수 있는 이유 (0) | 2025.03.19 |
[TIL-011] List<String> → List<int> 타입 변환 오류 해결 방법 (0) | 2025.03.17 |