ExceptionUtil.java
public class ExceptionUtil {
public static void printElement(int[] array, int index) {
try {
// 指定されたインデックスの要素を取得し出力
int value = array[index];
System.out.println("選ばれた値: " + value);
} catch (ArrayIndexOutOfBoundsException e) {
// 配列の範囲外にアクセスした場合のエラー処理
System.out.println("エラー: インデックスが範囲外です");
}
}
}
解説:ArrayIndexOutOfBoundsException の基本
このステップでは、配列に存在しないインデックスを指定した場合に発生する例外ArrayIndexOutOfBoundsException
を安全に処理する方法を学びます。
どんなときに起きるのか?
Javaの配列は、0から始まるインデックスでアクセスします。
int[] arr = {10, 20, 30}; // 長さ3 → 有効なindexは 0, 1, 2
上記の配列に対して arr[3]
とアクセスすると、存在しない要素にアクセスしたとして ArrayIndexOutOfBoundsException
がスローされます。
try-catch の使いどころ
このような「使う前に確認すべき処理」をそのまま書くと、実行時にエラーで止まってしまいます。
しかし try-catch
を使えば、プログラムを止めずに、エラーメッセージを出力して処理を継続できます。
出力例と動作確認
int[] numbers = {10, 20, 30};
ExceptionUtil.printElement(numbers, 1); // → 選ばれた値: 20
ExceptionUtil.printElement(numbers, 3); // → エラー: インデックスが範囲外です
ExceptionUtil.printElement(numbers, 0); // → 選ばれた値: 10
まとめ:このステップで学ぶべきこと
- 配列のインデックスは範囲外アクセスで例外が発生する
ArrayIndexOutOfBoundsException
をtry-catch
で捕捉すれば、安全なアクセスが可能になる- ユーザーに適切なフィードバックを与えることで、アプリケーションの信頼性を高められる
Just Keep Typing, Baby!では、この「例外修羅道」でつまづいた人向けの解説をしています。こちらもぜひ!
// tesh:
// これ、見逃すと変なクセつくぞ。読んどこ。