猿问

什么是IndexOutOfRangeException / ArgumentOutOfRange

什么是IndexOutOfRangeException / ArgumentOutOfRange

我有一些代码,当它执行时,它抛出一个IndexOutOfRangeException,说,

指数数组的边界之外。

这是什么意思,我能做些什么呢?

根据使用的类别,它也可以 ArgumentOutOfRangeException

mscorlib.dll中出现“System.ArgumentOutOfRangeException”类型的异常但未在用户代码中处理附加信息:索引超出范围。必须是非负数且小于集合的大小。


回首忆惘然
浏览 4260回答 4
4回答

www说

关于Index out of bound of exception的简单解释是:试想一下火车的舱室是D1,D2,D3。一名乘客来到火车,他有D4的机票。现在会发生什么。乘客想进入一个不存在的隔间,所以很明显会出现问题。相同的场景:每当我们尝试访问数组列表等时,我们只能访问数组中的现有索引。array[0]并且array[1]存在。如果我们尝试访问array[3],实际上并不存在,那么将出现索引超出范围的异常。

喵喔喔

从非常长的完全接受的答案的一方面来看,IndexOutOfRangeException与许多其他异常类型相比,有一个重点,那就是:通常存在复杂的程序状态,可能难以在代码中的特定点控制,例如DB连接断开,因此无法检索输入的数据等......这种问题通常会导致某种类型的异常必须冒泡到更高的水平,因为它发生的地方在那时无法处理它。IndexOutOfRangeException通常不同之处在于,在大多数情况下,在引发异常时检查它是非常简单的。通常这种异常会被某些代码抛出,这些代码可以很容易地在它发生的地方处理问题 - 只需检查数组的实际长度即可。您不希望通过更高级处理此异常来“修复”此问题 - 而是确保它不会在第一个实例中抛出 - 在大多数情况下通过检查数组长度很容易。另一种说法是,由于真正缺乏对输入或程序状态的控制,可能会出现其他异常,但IndexOutOfRangeException通常只是导频(程序员)错误。
随时随地看视频慕课网APP
我要回答