为了账号安全,请及时绑定邮箱和手机立即绑定

什么是IndexOutOfRangeException / ArgumentOutOfRange

什么是IndexOutOfRangeException / ArgumentOutOfRange

回首忆惘然 2019-05-21 15:13:26
什么是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],实际上并不存在,那么将出现索引超出范围的异常。


查看完整回答
反对 回复 2019-05-21
?
喵喔喔

TA贡献1735条经验 获得超5个赞

从非常长的完全接受的答案的一方面来看,IndexOutOfRangeException与许多其他异常类型相比,有一个重点,那就是:

通常存在复杂的程序状态,可能难以在代码中的特定点控制,例如DB连接断开,因此无法检索输入的数据等......这种问题通常会导致某种类型的异常必须冒泡到更高的水平,因为它发生的地方在那时无法处理它。

IndexOutOfRangeException通常不同之处在于,在大多数情况下,在引发异常时检查它是非常简单的。通常这种异常会被某些代码抛出,这些代码可以很容易地在它发生的地方处理问题 - 只需检查数组的实际长度即可。您不希望通过更高级处理此异常来“修复”此问题 - 而是确保它不会在第一个实例中抛出 - 在大多数情况下通过检查数组长度很容易。

另一种说法是,由于真正缺乏对输入或程序状态的控制,可能会出现其他异常,但IndexOutOfRangeException通常只是导频(程序员)错误。


查看完整回答
反对 回复 2019-05-21
  • 4 回答
  • 0 关注
  • 4259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信