Строковое преобразование в java выбрасывает индекс массива из диапазона исключений - PullRequest
0 голосов
/ 06 января 2010

Я написал следующий код, но он выбрасывает индекс массива вне диапазона исключений

    String options = "" + args[0];

    if (options.toLowerCase().contains("failover"))
    {
        dataToPass[0]= "failover";
        callScript("Clus1toNfastfastsamehost",dataToPass);
    }

Исключения: имя_исключения = java.lang.ArrayIndexOutOfBoundsException exception_message = Индекс массива вне диапазона: 1

Ответы [ 4 ]

3 голосов
/ 06 января 2010

Ну, либо у вас недостаточно памяти для dataToPass [], либо вы не передали аргументы программе. Если аргументы не передаются, аргументы - это массив нулевой длины. Отладка будет хорошим вариантом для вас, приятель.

2 голосов
/ 06 января 2010

Ну, это прямое исключение. Проверьте все длины вашего массива. Сколько предметов в аргах? В dataToPass? Рассмотрите возможность использования отладчика.

2 голосов
/ 06 января 2010

ОБНОВЛЕНИЕ С ИСПРАВЛЕНИЕМ КОДА

String options = ""
if (args.length > 0)
  options += args[0]

Оригинальные комментарии:

В примере кода вы ссылаетесь на массив в двух местах. args[0] и dataToPass[0]

Должно быть, один из этих двух. Итак, а) вы не передаете никакие аргументы программам, и аргументы [0] не определены - мне это кажется странным, потому что я думал, что args[0] было именем программы или b) dataToPass[0] не был выделен - есть dataToPass массив нулевой длины, а не массив 1 длины?

2 голосов
/ 06 января 2010

Вы не передаете аргумент своей программе.

...