演習課題「例外の種類を変更しよう」
右のコードでは、RPGの勇者の行動を3行表示します。
しかし、enemies配列の範囲外にアクセスするため例外が発生するのですが、捕捉する例外が異なるため、プログラムが強制終了してしまいます。
このプログラムを修正して、配列の範囲外にアクセスした場合の例外を捕捉してください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
期待する出力値
勇者は敵に遭遇した
勇者は勝利した
期待する標準エラー出力値
その敵は表示できません
#04:発生させる例外を変えてみよう
ここでは、いろいろな種類の例外に対応する方法を学習します。例として、ゼロで割り算するだけでなく、数値変換の例外を捕捉してみましょう。
// 例外処理 - 発生させる例外を変更する
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
        try {
            // int number = Integer.parseInt("5");
            // int number = Integer.parseInt("0");
            int number = Integer.parseInt("a");
            int answer = 100 / number;
            System.out.println(answer);
        } catch (NumberFormatException e) {
            System.err.println("文字列を数値に変換できません。");
            e.printStackTrace();
        } finally {
            System.out.println("Hello Java");
        }
    }
}
- Exception 例外を捕捉する
- ArithmeticException ゼロ除算など、不正な算術計算で発生する例外
- NumberFormatException 数値変換する文字列が不正な形式の時に発生する例外
- Javaの道:例外(1.はじめての例外)
  http://www.javaroad.jp/java_exception1.htm
- Java 入門 | 単純な例外処理
  http://msugai.fc2web.com/java/trydemo.html
- 【初心者向け】よく出会うJavaのエラーと対策7選!
  https://eng-entrance.com/java-basic-error