ArrayIndexOutOfBoundsException 和 IndexOutOfBoundsException 之间的区别?
Posted
技术标签:
【中文标题】ArrayIndexOutOfBoundsException 和 IndexOutOfBoundsException 之间的区别?【英文标题】:Difference between ArrayIndexOutOfBoundsException and IndexOutOfBoundsException? 【发布时间】:2016-03-19 21:11:35 【问题描述】:在哪些用例中我们应该交替使用ArrayIndexOutOfBoundsException
和`IndexOutOfBoundsException?
【问题讨论】:
谷歌 "IndexOutOfBoundsException" 不同的是,n Array的情况下使用一个,另一个不使用。 【参考方案1】:IndexOutOfBoundsException :抛出以指示某种索引(例如数组、字符串或向量)超出范围。
ArrayIndexOutOfBoundsException
, StringIndexOutOfBoundsException
是两个类,都实现了IndexOutOfBoundsException
。
ArrayIndexOutOfBoundsException: 抛出一个表示数组被非法索引访问。索引为负数或大于等于数组的大小。
StringIndexOutOfBoundsException:由 String 方法抛出,表示索引为负数或大于字符串的大小。对于某些方法,例如charAt方法,当索引等于字符串的大小时也会抛出这个异常。
【讨论】:
【参考方案2】:IndexOutOfBoundsException
是ArrayIndexOutOfBoundsException
(访问数组中的无效索引时抛出)和StringIndexOutOfBoundsException
(访问字符串中的无效索引时抛出)的超类。
当访问无效的列表索引时,基类IndexOutOfBoundsException
本身的实例被抛出。
一些抛出IndexOutOfBoundsException
或其子类的方法的Javadoc包含基类。例如,String.charAt
被记录为在实际抛出子类 StringIndexOutOfBoundsException
时抛出 IndexOutOfBoundsException
。
【讨论】:
【参考方案3】:基本上,如果您超出数组或字符串的范围,您将得到 ArrayIndexOutOfBoundsException 或 StringIndexOutOfBoundsException。 但是对于 LinkedList 或其他一些集合,您将获得更一般的 IndexOutOfBoundsException。
【讨论】:
【参考方案4】:ArrayIndexOutOfBoundsException 指示其消息中的非法索引。
【讨论】:
而IndexOutOfBoundsException
没有?以上是关于ArrayIndexOutOfBoundsException 和 IndexOutOfBoundsException 之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章