年齢にマイナスを入れると例外を発生する
概要
いわゆるユーザー情報管理
ありえない年齢を入力すると例外を発生する。
1.コマンドラインからユーザー名と年齢を指定する。
2.仮のデータとして名無し、0歳のオブジェクトを生成する。
3.名前と年齢をコマンドラインから受け取った値に設定する。
4.設定した年齢が負の値の場合は例外を投げる。この例外は自作。
import java.io.IOException; class UserInfo { private String name; private int age; public UserInfo() { this.name = "名無し"; this.age = 0; System.out.println("ユーザー情報管理オブジェクトを" + this.name + "、" + this.age + "で生成しました"); } public String getName() { return this.name; } public int getAge() { return age; } public void setName(String name) { this.name = name; System.out.println("ユーザー名を" + this.name + "に変更設定しました。"); } public void setAge(int age) throws InvalidUserAgeException { // 年齢を設定するメソッド。負の場合はエラーを投げる。 if (age < 0) { throw new InvalidUserAgeException(age, "ユーザー年齢は0歳以上とすること "); } this.age = age; System.out.println("ユーザー年齢を" + this.age + "に変更設定しました。"); } public String toString() { return "ユーザー名:" + this.name + "ユーザー年齢:" + this.age; } } class InvalidUserAgeException extends Exception { int age; InvalidUserAgeException(int age, String errormessage) { super(errormessage); this.age = age; } public int getAge() { return this.age; } } class UserAdmin { public static void main(String[] args) throws IOException { if (args.length != 2) { System.out.println("コマンドライン引数の指定が不正です"); System.exit(1); } UserInfo ui = new UserInfo(); String name; int age; try { name = args[0]; age = Integer.parseInt(args[1]); ui.setName(name); ui.setAge(age); System.out.println("Name:" + ui.getName()); System.out.println("Age:" + ui.getAge()); } catch (InvalidUserAgeException e) { System.out.println("Error:" + e.getMessage()); System.out.println("年齢が負です。 " + e.getAge()); } catch (NumberFormatException e) { System.out.println("Error:指定した引数から年齢を抽出できませんでした。"); } catch (Exception e) { System.out.println(e.getMessage()); } System.out.println("プログラムを終了します。"); } }
実行結果
>java 綾瀬はるか -10
ユーザー情報管理オブジェクトを名無し、0で生成しました
ユーザー名を綾瀬はるかに変更設定しました。
Error:ユーザー年齢は0歳以上とすること
年齢が負です。 -10
プログラムを終了します。
- 作者: 綾瀬はるか週刊文春原色美女図鑑編
- 出版社/メーカー: 文藝春秋
- 発売日: 2012/12/08
- メディア: 大型本
- クリック: 560回
- この商品を含むブログ (5件) を見る