자바

JAVA 자바 예외처리: 실행 예외 - ArrayIndexOutOfBoundsException

알통몬_ 2017. 3. 13. 10:56
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

ArrayIndexOutOfBoundsException

 길이가 3인 배열에서 3번을 사용하는 것처럼 배열에서 인덱스 범위를 초과해 사용할 경우에ArrayIndexOutOfBoundsException이 발생합니다.

예제)

public class ArrayIndexOutOfBoundsExceptionExample {

public static void main(String[] args) {

String data1 = args[0];

String data2 = args[1];

System.out.println("args[0]: " + data1);

System.out.println("args[1]: " + data2);

}

}

이 예제는 args[0] 과 args[1] 에 매개 값을 주지 않았기 때문에 인덱스를 사용할 수 없어 실행예외가 발생합니다.



이클립스 메뉴에서 Run => Run Configuration을 선택하고 Arguments 탭에서 Program arguments 입력란에 매개 값을 입력해주면 됩니다. ex) 배열 인덱스    <- 값은 공백 한칸으로 구분합니다.


아래와 같이 수정하면 ArrayIndexOutOfBoundsException 이 발생하지 않습니다. 

배열의 값을 읽기 전에 배열의 길이를 먼저 조사하는 것입니다. 

public class Example {

public static void main(String[] args) {

if(args.length == 2) {

String data1 = args[0];

String data2 = args[1];

System.out.println("args[0]: " + data1);

System.out.println("args[1]: " + data2);

} else { // 실행 매개값이 없거나 부족할 경우 조건문으로 사용자에게 실행 방법을 알려줍니다.

System.out.println("[실행 방법]");

System.out.print("java  ArrayIndexOutOfBoundsExceptionExample  ");

System.out.print("값1  값2");

}

}

 

}


반응형