Выскакивает окно при вводе пустых данных в <edit>

parrx

Выдающийся
Участник
Сообщения
57
Розыгрыши
0
Репутация
7
Реакции
5
Баллы
1 310
Всем привет
пилю КБ
создал в хтлм поле для ввода (как в сервисе по смене имени)
HTML:
<edit var="name" width=125 height=10 length=16>
все работает все хорошо но если поле оставить пустым и отправить запрос то выскакиевает
TRyoBj2zlZg.jpg

все проверки проходят мимо
Код:
try
{
  // данные из поля ввода
  String name = mBypass[2].substring(1);
  if(name.length() == 0)
  {
     // сюда даже не заходит идет сразу в -> catch(ArrayIndexOutOfBoundsException e)
     return;
  }
}
catch(ArrayIndexOutOfBoundsException e)
{
  System.out.println("error " + e);
  return;
}

может кто уже сталкивался с такой проблемой?
ЗЫ ошибся разделом:facepalm:, если можно то перенесите в раздел "вопросы новичков"
 
Всем привет
пилю КБ
создал в хтлм поле для ввода (как в сервисе по смене имени)
HTML:
<edit var="name" width=125 height=10 length=16>
все работает все хорошо но если поле оставить пустым и отправить запрос то выскакиевает
TRyoBj2zlZg.jpg

все проверки проходят мимо
Код:
try
{
  // данные из поля ввода
  String name = mBypass[2].substring(1);
  if(name.length() == 0)
  {
     // сюда даже не заходит идет сразу в -> catch(ArrayIndexOutOfBoundsException e)
     return;
  }
}
catch(ArrayIndexOutOfBoundsException e)
{
  System.out.println("error " + e);
  return;
}

может кто уже сталкивался с такой проблемой?
ЗЫ ошибся разделом:facepalm:, если можно то перенесите в раздел "вопросы новичков"
Ну так ArrayIndexOutOfBoundsException же. Т.к. твой эдит пуст, элемента mBypass[2] не существует.
 
Ну так ArrayIndexOutOfBoundsException же. Т.к. твой эдит пуст, элемента mBypass[2] не существует.
Код:
StringTokenizer st2 = new StringTokenizer(bypass, ";");
String[] mBypass = st2.nextToken().split(":");
я просто его не указал в коде)
 
Если содержимое mBypass[2] - это строка из эдита, то возможно она пустая и substring(1) просто заходит за границы длины строки.
 
У меня тоже есть трабла с едит боксом. Если поставить ввод больше 16 символов, то выбивает что не корректное свойство. Если юзать multiedit, то там всё норм, но русский не принимает
 
Код:
StringTokenizer st2 = new StringTokenizer(bypass, ";");
String[] mBypass = st2.nextToken().split(":");
я просто его не указал в коде)
И? Может все-таки укажешь, и потом уже кинешь код?
Еще раз повторяю: mBypass[2] не существует, если эдит пуст. Проверяй mBypass[2] на существование, либо mBypass на длину, и в случае успеха выполняй свои действия.
 
И? Может все-таки укажешь, и потом уже кинешь код?
Еще раз повторяю: mBypass[2] не существует, если эдит пуст. Проверяй mBypass[2] на существование, либо mBypass на длину, и в случае успеха выполняй свои действия.

тогда как можно обработать если он пуст?
Код:
StringTokenizer st2 = new StringTokenizer(bypass, ";");
String[] mBypass = st2.nextToken().split(":");
try
{ 
     String name = mBypass[2].substring(1);
     if(name.equals("") || name.length() == 0)
     {
        System.out.println("name is null");
        return;
     }
     else
     {
        System.out.println("ok!!!");
     }
)
catch(ArrayIndexOutOfBoundsException e)
{
     System.out.println("error " + e);
     return;
}
 
тогда как можно обработать если он пуст?
Код:
StringTokenizer st2 = new StringTokenizer(bypass, ";");
String[] mBypass = st2.nextToken().split(":");
try
{
     String name = mBypass[2].substring(1);
     if(name.equals("") || name.length() == 0)
     {
        System.out.println("name is null");
        return;
     }
     else
     {
        System.out.println("ok!!!");
     }
)
catch(ArrayIndexOutOfBoundsException e)
{
     System.out.println("error " + e);
     return;
}
Да в принципе catch(ArrayIndexOutOfBoundsException e) и есть обработка ситуации, в которой он пуст. Но ты указываешь это как проблему.
Если суть именно в выскакивающем окне в клиенте, то смотри, как влияет работа скрипта в catch и после него на ответ клиенту, видимо отправляется какой-то кривой нестандартный ответ. Скорее всего длина html ответа превышает максимум, и в самой отправке пакета кидается SystemMsg 329, которые вызывает твое окно.
 
Да в принципе catch(ArrayIndexOutOfBoundsException e) и есть обработка ситуации, в которой он пуст. Но ты указываешь это как проблему.
Если суть именно в выскакивающем окне в клиенте, то смотри, как влияет работа скрипта в catch и после него на ответ клиенту, видимо отправляется какой-то кривой нестандартный ответ. Скорее всего длина html ответа превышает максимум, и в самой отправке пакета кидается SystemMsg 329, которые вызывает твое окно.
я сразу так подумал, но ни где не нашел вызов 329 сообщение, во всем проекте нету
 
Назад
Сверху Снизу