[ERROR] indexOutOfBoundException 해결

gnoesnooj·2022년 5월 19일
0

배경

더모티 프로젝트를 진행하던 중, 특정 주소에 대해 카카오 map api 가 위도 경도에 대한 좌표를 찾아내지 못한다는 것을 알게 되었다.
예를 들어, 율현중학교와 같은 그저 건물명만 입력했을 때에는 좌표를 찾아주지 못하는 경우가 있었다.
처음에 나는 직접 문제가 되는 데이터를 찾아내었고, 그 당시에는 데이터에 "~" 가 들어가서 발생하는 문제였기에, 이를 replace() 를 통해서 ""로 바꿔주니 데이터가 제대로 들어갔었다.
하지만 이는 당연하지만 제대로 된 해결방법이 아니였다. 그냥 주먹구구식으로 해결한 문제였던 것이다.

접근 / 해결

좀 더 제대로된 해결방법을 위해, e.printStackTrace() 를 통해 에러를 확인해 보니

이와 같은 exception 이 발생하고 있었다.
이 exception 을 처리해주려면, 여태 예외를 처리해줬던 것처럼 throw new 를 통해 custom 예외로 발생 시키고, 그 다음 handler 로 처리를 해주면 되긴 하지만, 우선 이 기능은 모두 정상적으로 실행이 되어야 했기 때문에 예외를 throw 해주는 것은 좋지 않은 방법이라고 생각했다.

따라서 문제가 되는 코드인 documents.get(0) 에서, 이를 null 체크를 한 다음 진행을 하도록 코드를 변경하였다.

하지만 똑같은 문제가 발생했다. null 체크를 하고 진행해도 같은 예외가 발생하는 것이였다.

indexOutOfBoundException 에 대해 제대로 모르는 게 있나 싶어 찾아보니, null 체크 뿐만 아니라 isEmpty 도 진행해주어야 했다.

empty와 null 모두 체크해주는 ObjectUtils 의 isEmpty() 를 통해 해결해주었다.

profile
누구나 믿을 수 있는 개발자가 되자 !

0개의 댓글