演習課題「例外の種類を変更しよう」
右のコードでは、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