什么是IndexOutOfRangeException / ArgumentOutOfRange我有一些代码,当它执行时,它抛出一个IndexOutOfRangeException,说,指数数组的边界之外。这是什么意思,我能做些什么呢?根据使用的类别,它也可以 ArgumentOutOfRangeExceptionmscorlib.dll中出现“System.ArgumentOutOfRangeException”类型的异常但未在用户代码中处理附加信息:索引超出范围。必须是非负数且小于集合的大小。
4 回答
www说
TA贡献1775条经验 获得超8个赞
关于Index out of bound of exception的简单解释是:
试想一下火车的舱室是D1,D2,D3。一名乘客来到火车,他有D4的机票。现在会发生什么。乘客想进入一个不存在的隔间,所以很明显会出现问题。
相同的场景:每当我们尝试访问数组列表等时,我们只能访问数组中的现有索引。array[0]
并且array[1]
存在。如果我们尝试访问array[3]
,实际上并不存在,那么将出现索引超出范围的异常。
喵喔喔
TA贡献1735条经验 获得超5个赞
从非常长的完全接受的答案的一方面来看,IndexOutOfRangeException
与许多其他异常类型相比,有一个重点,那就是:
通常存在复杂的程序状态,可能难以在代码中的特定点控制,例如DB连接断开,因此无法检索输入的数据等......这种问题通常会导致某种类型的异常必须冒泡到更高的水平,因为它发生的地方在那时无法处理它。
IndexOutOfRangeException
通常不同之处在于,在大多数情况下,在引发异常时检查它是非常简单的。通常这种异常会被某些代码抛出,这些代码可以很容易地在它发生的地方处理问题 - 只需检查数组的实际长度即可。您不希望通过更高级处理此异常来“修复”此问题 - 而是确保它不会在第一个实例中抛出 - 在大多数情况下通过检查数组长度很容易。
另一种说法是,由于真正缺乏对输入或程序状态的控制,可能会出现其他异常,但IndexOutOfRangeException
通常只是导频(程序员)错误。
- 4 回答
- 0 关注
- 4259 浏览
添加回答
举报
0/150
提交
取消