エラーの対処方法

【Java】ArrayIndexOutOfBoundsExceptionの3つの発生原因と対処方法

JavaのArrayIndexOutOfBoundsExceptionについて

Javaでプログラミングを行う際、配列を使用するときにArrayIndexOutOfBoundsExceptionというエラーに遭遇することがあります。
このエラーは、配列の範囲外のインデックスにアクセスしようとしたときに発生します。つまり、存在しない配列の要素にアクセスしようとしたときにこのエラーが出ます。

サルモリ
このエラー、プログラムを書いてるとよく出てきて困るんだよね…

Javaのエラー一覧はコチラ

【Java】よく発生するエラー一覧12選 エラーの発生事例と対処方法をみてみよう!

Javaのエラーとその対処方法 この記事では、Javaでよく発生するエラーと各エラーが起きる事例と、その対処方法を紹介していきます。 下記のエラーについてみていきます! エラーリスト NullPoin ...

続きを見る

ArrayIndexOutOfBoundsExceptionが発生する例

例1: 配列の範囲外にアクセス

エラーが発生するソースコード

上記のプログラムはArrayIndexOutOfBoundsExceptionを発生させます。なぜなら、配列arrayのサイズは5(インデックスは0から4まで)なのに、存在しないインデックス5にアクセスしようとしているからです。

サルモリ
なるほど、存在しないところにアクセスしちゃってるからエラーが出るんだね。

対処後のソースコード

配列のインデックスは0から始まるので、配列の長さが5の場合、有効なインデックスは0から4までとなります。
したがって、array[5]をarray[4]に変更すれば、エラーは発生しません。

サルモリ
配列のインデックス、気をつけないといけないね!
 出力結果
エラーなし 

エラーが解消され、正常にプログラムが実行されます。
このように、配列のインデックスを適切に管理することで、ArrayIndexOutOfBoundsExceptionを避けることができます。

Java言語のStreamAPIを徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版

例2: ループの範囲指定ミス

エラーが発生するソースコード

上記のプログラムでもArrayIndexOutOfBoundsExceptionが発生します。
この例では、forループの条件式が配列の長さと等しい値までループを回しているため、存在しないインデックスにアクセスしてエラーが発生しています。

サルモリ
あれ?でも<=って書いてるからarray.lengthまで回すんじゃないの?

対処後のソースコード

配列の長さは5ですが、配列のインデックスは0から始まるため、最後の要素のインデックスは4になります。
したがって、forループの条件式をi <= array.lengthからi < array.lengthに変更すれば、エラーは発生しません。

サルモリ
なるほど!インデックスは0から始まるから、<=だとオーバーしちゃうんだね!
 出力結果
エラーなし 

エラーが解消され、プログラムが正常に実行されます。
このように、ループを使用する際は、配列の長さを超えないように注意が必要です。

例3: 配列の初期化ミス

エラーが発生するソースコード

上記のコードでもArrayIndexOutOfBoundsExceptionが発生します。なぜなら、arrayがnullで初期化されており、まだ実際の配列が存在していないからです。

サルモリ
あれ、nullって何?

対処後のソースコード

nullとは、何も参照していない状態を示す特殊な値です。
したがって、arrayがnullの状態でarray[0]にアクセスしようとすると、エラーが発生します。
arrayを実際の配列で初期化することで、エラーは発生しません。

サルモリ
なるほど、初期化しないとダメなんだね!
 出力結果
エラーなし 

エラーが解消され、プログラムが正常に実行されます。
このように、配列を使用する際は、適切に初期化することが重要です。

まとめ

JavaのArrayIndexOutOfBoundsExceptionは、配列の範囲外のインデックスにアクセスしたときに発生します。
これは主に次の3つのケースで起こります:

主なエラー発生ケース

  • 配列の範囲外にアクセスしたとき
  • ループの範囲指定ミス
  • 配列の初期化ミス

これらのエラーは、配列の範囲を正しく理解し、配列を適切に初期化することで避けることができます。
これらの基本的な原則を理解し、適切に適用することで、ArrayIndexOutOfBoundsExceptionのエラーを回避できるでしょう。

サルモリ
なるほど、配列の範囲をちゃんと理解することが大事なんだね!これなら、エラーになったときにどうすればいいかわかるよ!

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!

サルモリ
最後まで読んでくれてありがとう!!

Javaのエラー一覧はコチラ

【Java】よく発生するエラー一覧12選 エラーの発生事例と対処方法をみてみよう!

Javaのエラーとその対処方法 この記事では、Javaでよく発生するエラーと各エラーが起きる事例と、その対処方法を紹介していきます。 下記のエラーについてみていきます! エラーリスト NullPoin ...

続きを見る

-エラーの対処方法

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock