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 답변

  • 좋아요

    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 명령을 실행할 때 아무 인수도 넘기지 않아서 발생하는 문제라는 거죠.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)