Understanding IndexOutOfRangeException and ArgumentOutOfRangeException
Published on Mar 2, 2020
You've received the following error: Index was outside the bounds of the array with an IndexOutOfRangeException or you received: An exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll but was not handled in user code Additional information: Index was out of range. Must be non-negative and less than the size of the collection with an ArgumentOutOfRangeException. So what gives? Here is what you need to know.What is IndexOutOfRangeException: Index was outside the bounds of the array
This exception occurs when you try to access a collection item by using an invalid index. An index that is invalid happens when it is lower than the collection's lower bound or greater than or equal to the number of elements it contains. For example -1 or if there were 4 elements, using the number 4 because collections start at a 0; commonly called 0-based indexing.
What is An exception of type System.ArgumentOutOfRangeException
An ArgumentOutOfRangeException is very similar to IndexOutOfRangeException exception where you are trying to access an index that is not within the bounds of the list. Typically the ArgumentOutOfRangeException is thrown when using List
How to solve IndexOutOfRangeException and ArgumentOutOfRangeException
The most common way these exceptions are thrown when you are using search functions like IndexOf or FindIndex. When you are using these functions, if the value is not returned then the result returns -1 which is not inside the lower bounds of the array.
After performing a function call like this adding a simple check like: if (index > -1) or if (index >= 0) proceed. You can also check that a value is not trying to access outside of the array's upper bounds by doing something like: if (index < array.Length) proceed.
Tags: ASP.NET MVC and Web API Tutorial | c# | exception