关于异常的疑难解答:System.IndexOutOfRangeException

当尝试使用一个超出数组界限或小于零的索引访问数组或集合的元素时,会引发 IndexOutOfRangeException 异常。

相关提示

  • 确保列表中的最大索引小于列表的大小
    列表中的最大索引必须小于列表的大小。

  • 确保索引不是负数。
    如果索引小于零,将引发此异常。

  • 确保数据列名称正确。
    如果提供给 DataView.Sort 属性的数据列名称无效,则可能引发此异常。 有关更多信息,请参见 DataView 类。

示例

说明

下面的示例在索引 i 超出数组界限(0 到 3)时使用 Try…Catch 块捕获 IndexOutOfRangeException。 示例显示下面的内容:

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)