[TIL-014] Dart로 콘솔 텍스트 게임 만들기-2

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` 메서드를 호출하도록 수정하니 문제가 깔끔하게 해결되었다.

 

마무리(느낀 점)

이전에는 에러를 미리 예측하고 해결하면서 아주 좋은 쾌감을 느꼈는데, 이번에는 비교적 쉬운 부분에서 놓친 게 아쉬웠다.

사소한 실수 하나가 예기치 않은 오류로 이어질 수 있다는 걸 다시 한번 깨달았고, 에러를 예방하는 것도 중요하지만 빠르게 해결하는 능력도 함께 키워야겠다는 생각이 들었다.

 

앞으로 더 성장할 수 있도록 꾸준히 노력해야겠다.