Ява.яз..ArrayIndexOutOfBoundsException: 0


Я изучаю java, используя книгу. Есть одно упражнение, которое я не могу заставить работать должным образом. Он добавляет два двойника, используя класс java Double. Когда я пытаюсь запустить этот код в Eclipse, он выдает ошибку в заголовке.

public static void main(String[] args) {

    Double d1 = Double.valueOf(args[0]);
    Double d2 = Double.valueOf(args[1]);
    double result = d1.doubleValue() + d2.doubleValue();
    System.out.println(args[0] + "+" + args[1] + "=" + result);

}
2 5

2 ответа:

Задача

Это ArrayIndexOutOfBoundsException: 0 означает, что индекс 0 не является допустимым индексом для вашего массива args[], что в свою очередь означает, что Ваш массив пуст.

В данном конкретном случае метода main() это означает, что ни один аргумент не был передан вашей программе в командной строке.

Возможные решения

  • Если вы запускаете программу из командной строки, Не забудьте передать в команду 2 аргумента.

  • Если ты бежишь ... ваша программа в Eclipse, вы должны установить аргументы командной строки в конфигурации запуска. Перейдите в раздел Run > Run configurations..., а затем выберите вкладку Arguments для конфигурации запуска и добавьте некоторые аргументы в область Program arguments.

Обратите внимание, что вы должны обрабатывать случай, когда недостаточно аргументов дано , С чем-то вроде этого в начале вашего основного метода:

if (args.length < 2) {
    System.err.println("Not enough arguments received.");
    return;
}

Это было бы изящно, вместо того, чтобы вызвать сбой вашей программы.

Этот код ожидает получить два аргумента при запуске (массив args). Тот факт, что доступ к args[0] вызывает java.lang.ArrayIndexOutOfBoundsException, означает, что вы не передаете их.