IndexOutOfRangeException
This C# exception will typically occur when a statement tries to access an element at an index greater than the maximum allowable index.
This error happens in C# programs that use array types. A negative index will also cause this exception. If
-statements should be added to protect against invalid accesses.
Exception
exampleWhen you create an array of many elements, you can access those elements through the indices of zero through the maximum length minus one.
IndexOutOfRangeException
.class Program { static void Main() { // Allocate an array of one-hundred integers. // ... Then assign to positions in the array. // ... Assigning past the last element will throw. int[] array = new int[100]; array[0] = 1; array[10] = 2; array[200] = 3; } }Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array. at Program.Main() in ...Program.cs:line 8
To avoid the exception, you can insert bounds checks, as with an if
-statement. An alternative is to simply make the array length much larger when you allocate it.
You will encounter the IndexOutOfRangeException
if you try to assign to an index in an array that is negative. In C# arrays are indexed beginning at zero.
Here we saw the IndexOutOfRangeException
. We explained the relation between array lengths and array indices. You can always access the array indexes up to the array length minus one.