🏭 에러공장 7편 - ArrayIndexOutOfBoundsException 오류 해결법

🏭 에러공장 7편 - ArrayIndexOutOfBoundsException 오류 해결법

자바에서 배열을 다루다 보면, 어느 순간 이런 에러를 마주하게 됩니다:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5

즉, 배열의 범위를 벗어난 인덱스를 참조했다는 뜻입니다.


🔍 에러 발생 예시

int[] arr = new int[5];
arr[5] = 10;  // ❌ 여기서 예외 발생

배열의 인덱스는 0부터 시작하기 때문에, arr[5]는 존재하지 않습니다.
유효한 범위는 0 ~ 4입니다.


🛠 해결 방법

✅ 1. 인덱스 범위 정확히 기억하기

  • arr.length가 5일 경우, 접근 가능한 인덱스는 0 ~ 4

✅ 2. 반복문 실수 피하기

많이 하는 실수:

for (int i = 0; i <= arr.length; i++) {
    System.out.println(arr[i]); // ❌ 마지막에서 예외 발생
}

정답:

for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]); // ✅ 안전
}

✅ 3. List 사용 고려

List는 유연하고, .size()로 길이 확인 가능하며, 예외도 잘 다뤄집니다.


✅ 4. 방어 코드 작성

if (index >= 0 && index < arr.length) {
    System.out.println(arr[index]);
}

사용자 입력 기반 인덱스일 경우, 꼭 위와 같이 체크를 해줘야 합니다.


📌 전체 설명 보기

👉 https://koynalpha-dev.tistory.com/entry/error7


🏷️ 추천 태그

Java, ArrayIndexOutOfBoundsException, 배열 오류, 인덱스 에러, 자바 예외, 배열 범위, 에러공장, for문 실수


👉 다음 글 예고

에러공장 8편: java.lang.ClassNotFoundException - 존재하는데 왜 못 찾지?