Application Servers & Java

java.lang.ArrayIndexOutOfBoundsException: 1 – 배열 인덱스 초과 접근 오류

midworker 2025. 5. 19. 22:39
반응형

Java에서 가장 자주 발생하는 런타임 오류 중 하나는 배열 인덱스 관련 예외입니다.
이번 글에서는 다음과 같은 오류 메시지를 중심으로 원인과 해결책을 정리합니다.


에러 메시지

java.lang.ArrayIndexOutOfBoundsException: 1

원인 분석

이 예외는 Java 코드에서 배열(Array) 또는 리스트(List)의 유효 범위를 벗어난 인덱스에 접근하려고 할 때 발생합니다.

예시 코드

String[] names = new String[1];
names[0] = "Kim";
System.out.println(names[1]); // → 오류 발생

문제 요약

  • 위 배열 names의 길이는 1 (인덱스 0만 사용 가능)
  • names[1]에 접근하려고 해서 ArrayIndexOutOfBoundsException: 1 발생

즉, 배열의 크기는 1인데 인덱스 1에 접근하려 했기 때문에 오류가 발생한 것입니다.


자주 발생하는 상황

상황 설명
배열 길이보다 큰 인덱스 접근 new int[3] → 인덱스 0, 1, 2만 유효
split 결과 사용 시 str.split(",") 결과가 1개뿐인데 arr[1] 접근
루프 조건 실수 for (int i = 0; i <= array.length; i++) → 마지막에 예외 발생

🛠️ 해결 방법

1. 인덱스 조건 점검

배열의 길이를 초과하지 않는지 항상 체크합니다.

for (int i = 0; i < arr.length; i++) {
    // 안전한 접근
}

2. 배열 크기 확인

특정 인덱스를 접근하기 전, 배열의 길이부터 확인하세요.

if (arr.length > 1) {
    System.out.println(arr[1]);
}

3. split 후 배열 길이 검사

String[] parts = input.split(",");
if (parts.length > 1) {
    System.out.println(parts[1]);
}

결론

ArrayIndexOutOfBoundsException: 1은 개발자가 존재하지 않는 배열 인덱스에 접근했을 때 발생합니다.
이 오류는 단순하지만, 사용자 입력이나 외부 데이터 처리 시 자주 발생하므로 사전 점검이 필수입니다.

방어적 프로그래밍(Defensive Programming)으로 인덱스 범위 체크를 습관화하면 예외를 예방할 수 있습니다.


반응형