🏭 에러공장 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]);
}
사용자 입력 기반 인덱스일 경우, 꼭 위와 같이 체크를 해줘야 합니다.
c
📌 전체 설명 보기
👉 https://koynalpha-dev.tistory.com/entry/error7
🏷️ 추천 태그
Java, ArrayIndexOutOfBoundsException, 배열 오류, 인덱스 에러, 자바 예외, 배열 범위, 에러공장, for문 실수
👉 다음 글 예고
에러공장 8편: java.lang.ClassNotFoundException - 존재하는데 왜 못 찾지?