演習課題「標準入力でモンスターを選択する」
右のコードは、標準入力から受け取った値に合わせて、RPGの勇者の行動を3行表示します。
このプログラムで、例外の種類に合わせて、下記のエラーメッセージを標準エラー出力に表示して下さい。
文字を入力 : 数値を入力してください
配列の範囲外にアクセス : 0から(配列の最大インデックス)を入力してください
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
期待する出力値
勇者は敵に遭遇した
勇者は勝利した
期待する標準エラー出力値
0から2を入力してください
#06:具体例:標準入力でプレイヤーを選択する
ここでは、例外処理の具体例として、RPGのプレイヤーを表示するプログラムに例外処理を追加します。
標準入力からの値に合わせて、プレイヤーを選択して表示しますが、処理できない場合にエラーメッセージを表示させましょう。
//例外処理 - 具体例:標準入力でプレイヤーを選択する
import java.util.*;
public class Main {
public static void main(String[] args) {
// プレイヤー名を配列で記述する
String[] players = {"勇者", "戦士", "魔法使い", "忍者"};
try {
// 標準入力から整数を取り込み
Scanner sc = new Scanner(System.in);
int number = Integer.parseInt(sc.next());
// 入力値に合わせて、プレイヤー名を表示する
System.out.println(players[number] + "は、モンスターを倒した!");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("0から" + (players.length - 1) + "を入力してください。");
e.printStackTrace();
} catch (NumberFormatException e) {
System.out.println("数値を入力してください。");
e.printStackTrace();
} finally {
System.out.println("次の冒険が始まった。");
}
}
}
- 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
- Java の例外処理について徹底的に調べてみた | Futurismo
http://futurismo.biz/archives/2935
- Java例外の投げ方メモ(Hishidama's Java throw Memo)
http://www.ne.jp/asahi/hishidama/home/tech/java/throw.html
- Javaにおける例外処理のベスト・プラクティス | Money Forward Engineers' Blog
https://moneyforward.com/engineers_blog/2014/08/22/java%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E4%BE%8B%E5%A4%96%E5%87%A6%E7%90%86%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%BB%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9/
- Exception (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/index.html?java/lang/Exception.html
- Uses of Class java.lang.Exception (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/class-use/Exception.html