例外のトラブルシューティング : System.IndexOutOfRangeException

IndexOutOfRangeException 例外は、配列の境界外または 0 よりも小さいインデックスを持つ配列またはコレクションの要素にアクセスしようとするとスローされます。

関連するヒント

  • リスト上の最大インデックスがリスト サイズよりも小さいことを確認します。
    リスト上の最大インデックスは、リスト サイズよりも小さくする必要があります。

  • インデックスが負数でないことを確認します。
    この例外は、インデックスが 0 よりも小さい場合にスローされます。

  • データ列名が正しいことを確認します。
    この例外は、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 における配列