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)으로 인덱스 범위 체크를 습관화하면 예외를 예방할 수 있습니다.
반응형