2015-12-07 2 views
0

я объявляющего эту переменную в качестве даты:vb.net Индекс находился вне границ массива

Dim fromdate as Date 

внутри время цикла при чтении в файле .csv, я прочитал это значение:

Input(1, fromdate) 

, но если значение в файле CSV является пустым, я получаю сообщение об ошибке говорящего

Index was outside the bounds of the array. 

как я могу установить fromdate, как сегодняшние date в vb.net (Date.Now.ToString("dd/MM/yyyy")), если его пробел в CSV-файле?

+2

'Input' - действительно старая функция обратной совместимости - если вы пишете новый код, есть почти наверняка лучший способ сделать это. Возможно, вы захотите поделиться своим кодом, чтобы получить более качественные ответы. –

+0

его старый код, только файл csv недавно изменился, но в настоящее время некогда переписывать код, но это будет сделано в будущем – charlie

+0

Достаточно справедливо. Это определенно строка 'Input', которая бросает эту ошибку? [Документы] (https://msdn.microsoft.com/en-us/library/tty8298b (v = vs.90) .aspx), похоже, указывают, что он должен только бросать 'IOException' –

ответ

1

Должно возникнуть проблема со значением, которое вы пытаетесь прочитать. Может быть, его там нет (как упоминается ошибка).

В любом случае вы можете попробовать этот код и поймать ошибку и контролировать его:

Try 
     Input(1, fromdate) 
    Catch ex As IOException 
     MessageBox.Show(ex.Message) 
     ' try to set the date in another way or choose the default value 
    End Try 

От MSDN

Исключение:

  • IOException [52]: Номер_файл не существует ,
  • IOException [54]: Неверный режим файла.

См. Столбец «Номер ошибки» при обновлении приложений Visual Basic 6.0, использующих неструктурированную обработку ошибок. (Вы можете сравнить номер ошибки с Property Number (Err Object).) Однако, когда это возможно, вы должны подумать о замене такого управления ошибкой на Structured Exception Handling Overview для Visual Basic.

Смежные вопросы