ArrayIndexOutOfBoundsException
と `IndexOutOfBoundsExceptionを交互に使用する必要があるユースケースは何ですか?
IndexOutOfBoundsException :ある種のインデックス(配列、文字列、ベクトルなど)が範囲外であることを示すためにスローされます。
ArrayIndexOutOfBoundsException
、StringIndexOutOfBoundsException
は、IndexOutOfBoundsException
を実装した2つのクラスです。
ArrayIndexOutOfBoundsException :配列が不正なインデックスでアクセスされたことを示すためにスローされます。インデックスは負であるか、配列のサイズ以上です。
StringIndexOutOfBoundsException :インデックスが負であるか、文字列のサイズより大きいことを示すために、Stringメソッドによってスローされます。 charAtメソッドなどの一部のメソッドでは、インデックスが文字列のサイズと等しい場合にもこの例外がスローされます。
IndexOutOfBoundsException
は、ArrayIndexOutOfBoundsException
(配列内の無効なインデックスにアクセスするときにスローされる)とStringIndexOutOfBoundsException
(文字列内の無効なインデックスにアクセスするときにスローされる)のスーパークラスです。
リストの無効なインデックスにアクセスすると、基本クラスIndexOutOfBoundsException
自体のインスタンスがスローされます。
IndexOutOfBoundsException
またはそのサブクラスをスローするいくつかのメソッドのJavadocには、基本クラスが含まれています。例えば、 String.charAt
は、実際にサブクラスIndexOutOfBoundsException
をスローするときに、StringIndexOutOfBoundsException
をスローすることが文書化されています。
基本的に、配列または文字列の範囲外になると、ArrayIndexOutOfBoundsExceptionまたはStringIndexOutOfBoundsExceptionが発生します。 LinkedListまたはその他のコレクションの場合、より一般的なIndexOutOfBoundsExceptionが発生します。
ArrayIndexOutOfBoundsExceptionは、メッセージ内の不正なインデックスを示します。