📜  C#|数组IndexOutofRange异常(1)

📅  最后修改于: 2023-12-03 15:00:15.906000             🧑  作者: Mango

C# | 数组IndexOutofRange异常

在C#中,数组是一种常用的数据结构,用于存储一系列相同类型的数据。我们可以使用索引来访问数组中的元素。然而,当我们使用无效的索引访问数组时,就会抛出 'IndexOutOfRangeException' 异常。

异常说明

'IndexOutOfRangeException' 异常表示我们尝试在数组中访问一个索引,而该索引不在数组的有效索引范围内。这通常会发生在以下情况下:

  • 使用负数的索引
  • 使用大于等于数组长度的索引
  • 访问一个空数组
异常处理

要捕获 'IndexOutOfRangeException' 异常,我们可以放置我们的数组访问语句在 'try' 块中,并在 'catch' 块中处理异常。以下是一个示例:

try {
    int[] arr = new int[3];
    arr[5] = 10;
} catch (IndexOutOfRangeException ex) {
    Console.WriteLine("Index out of range!");
    Console.WriteLine(ex.Message);
}

在上面的示例中,我们首先创建一个长度为 '3' 的整数数组,然后尝试在索引 '5' 处赋值为 '10'。由于这个索引超出了数组的有效范围,所以 'IndexOutOfRangeException' 异常被抛出。在异常处理程序中,我们打印错误消息并显示异常的详细信息。

避免异常

为了避免 'IndexOutOfRangeException' 异常,我们应该始终确保我们的数组访问语句使用有效的索引。我们可以使用如下步骤来确保有效的索引:

  • 确定数组的长度
  • 确定索引是否大于等于零并小于数组长度

以下是一个示例:

int[] arr = new int[3];
int index = 2;

if (index >= 0 && index < arr.Length) {
    arr[index] = 10;
} else {
    Console.WriteLine("Invalid index!");
}

在上面的示例中,我们首先创建一个长度为 '3' 的整数数组,然后尝试将值 '10' 存储在索引 '2' 处。在存储值之前,我们检查索引是否大于等于零并小于数组长度。如果索引无效,我们打印错误消息。

结论

'IndexOutOfRangeException' 异常是C#中常见的运行时异常之一。为了确保我们的程序运行稳定,我们应该在访问数组时避免使用无效的索引并正确处理异常。