ArrayIndexOutOfBoundsException라고 오류가 뜨는 데 왜 그런 거죠?
조회수 289회
public class Demo {
public static void main(String[] args) {
String who = args[0];
String what = args[1];
System.out.println(who + " likes " + what + ".");
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at Demo.main(Demo.java:3)
이렇게 오류가 뜨는데 프로그램 인수로 사용자 입력 받으려고 하는데 오류가 떠서 검색해보니깐 array의 허용 범위를 넘어서서 이런 오류가 뜨는 거 같은데 왜 그러는 거죠??
1 답변
-
main 메서드의 args는 자바 프로그램을 실행할 때 명령어 뒤에 붙이는 인수들을 받아주는 변수입니다.
java MainTest a 1 b c 3 4 d f
위 명령을 예로 들면
[a, 1, b, c, 3, 4, d, f]
가 args로 할당된다고 보면 됩니다.질문의 코드를 보면 예외가 세 번째 라인에서 발생했죠? 그렇다는 것은 args에 아무것도 할당되지 않았다는 뜻입니다.
그러니까
java Demo
명령을 실행할 때 아무 인수도 넘기지 않아서 발생하는 문제라는 거죠.- 그럼 저 경우에는 어떻게 작성해야 인수를 받을 수 있을까요? duscks8632@gmail.com 2022.10.12 10:00
- java Demo a b c d e 하면 a b c d e 가 넘어가겠죠. 편집요청빌런 2022.10.16 21:46
- 감사합니다 duscks8632@gmail.com 2022.10.16 21:52
댓글 입력