web-dev-qa-db-ja.com

ArrayIndexOutOfBoundsExceptionとIndexOutOfBoundsExceptionの違いは?

ArrayIndexOutOfBoundsExceptionと `IndexOutOfBoundsExceptionを交互に使用する必要があるユースケースは何ですか?

12
quintin

IndexOutOfBoundsException :ある種のインデックス(配列、文字列、ベクトルなど)が範囲外であることを示すためにスローされます。

ArrayIndexOutOfBoundsExceptionStringIndexOutOfBoundsExceptionは、IndexOutOfBoundsExceptionを実装した2つのクラスです。

ArrayIndexOutOfBoundsException :配列が不正なインデックスでアクセスされたことを示すためにスローされます。インデックスは負であるか、配列のサイズ以上です。

StringIndexOutOfBoundsException :インデックスが負であるか、文字列のサイズより大きいことを示すために、Stringメソッドによってスローされます。 charAtメソッドなどの一部のメソッドでは、インデックスが文字列のサイズと等しい場合にもこの例外がスローされます。

16
Ravindra babu

IndexOutOfBoundsExceptionは、ArrayIndexOutOfBoundsException(配列内の無効なインデックスにアクセスするときにスローされる)とStringIndexOutOfBoundsException(文字列内の無効なインデックスにアクセスするときにスローされる)のスーパークラスです。

リストの無効なインデックスにアクセスすると、基本クラスIndexOutOfBoundsException自体のインスタンスがスローされます。

IndexOutOfBoundsExceptionまたはそのサブクラスをスローするいくつかのメソッドのJavadocには、基本クラスが含まれています。例えば、 String.charAtは、実際にサブクラスIndexOutOfBoundsExceptionをスローするときに、StringIndexOutOfBoundsExceptionをスローすることが文書化されています。

4
Eran

基本的に、配列または文字列の範囲外になると、ArrayIndexOutOfBoundsExceptionまたはStringIndexOutOfBoundsExceptionが発生します。 LinkedListまたはその他のコレクションの場合、より一般的なIndexOutOfBoundsExceptionが発生します。

0
XcodeNOOB

ArrayIndexOutOfBoundsExceptionは、メッセージ内の不正なインデックスを示します。

0
user1326628