例外のトラブルシューティング : 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