Поделиться через


Разрешение вопросов, связанных с исключениями: System.IndexOutOfRangeException

Исключение IndexOutOfRangeException возникает при попытке доступа к элементу массива или коллекции с индексом, который находится вне границ массива или меньше нуля.

Полезные советы

  • Убедитесь, что максимальный индекс списка не превышает размер списка
    Максимальный индекс списка должен быть меньше, чем размер списка.

  • Убедитесь, что индекс не является отрицательным числом.
    Это исключение возникнет, если индекс меньше нуля.

  • Убедитесь, что имена столбцов данных заданы правильно.
    Это исключение может возникнуть, если имя столбца данных, указанное в свойстве DataView.Sort, неправильно. Дополнительные сведения см. в описании класса DataView.

Пример

Описание

В следующем примере используется блок Try…Catch для перехвата исключения IndexOutOfRangeException, когда индекс i оказывается за пределами границ массива (от 0 до 3). В примере показано следующее:

Element at index 0: 3

Element at index 2: 5

Element at index -1: IndexOutOfRangeException caught

Element at index 4: IndexOutOfRangeException caught

Код

Module Module1

    Sub Main()
        ' The first two tests will display the value of the array element.
        IndexTest(0)
        IndexTest(2)
        ' The following two calls will display the information that
        ' an IndexOutOfRangeException was caught.
        IndexTest(-1)
        IndexTest(4)
    End Sub

    Sub IndexTest(ByVal i As Integer)
        Dim testArray() As Integer = {3, 4, 5, 6}
        Console.Write("Element at index {0}: ", i)
        Try
            Console.WriteLine(testArray(i))
        Catch ex As IndexOutOfRangeException
            Console.WriteLine("IndexOutOfRangeException caught")
        End Try
    End Sub

End Module

См. также

Задачи

Практическое руководство. Использование помощника по исключениям

Ссылки

IndexOutOfRangeException

Основные понятия

Массивы в Visual Basic