019-006-002

例外処理戦略:レシピ状態管理

初級

問題説明

例外処理戦略:レシピ状態管理

この問題では: 調理時間とレシピ状態を入力として受け取り、入力値エラーにはIllegalArgumentException、状態不整合にはIllegalStateExceptionを使い分けて検証し、結果を標準出力に表示するプログラムを作成します。

学習目標: 状況に応じて適切な例外を使い分ける方法を理解する

レシピの状態を管理するシステムを作成します。入力値の検証エラーにはIllegalArgumentExceptionを、状態の不整合にはIllegalStateExceptionを使い分けます。適切な例外を選択することで、エラーの原因を明確に伝え、デバッグやメンテナンスが容易になります。

入力

1行目: 調理時間(分)
2行目: レシピ状態("prepared" または "cooking" または "invalid")

出力

正常時:

=== Recipe State Manager ===
Cooking Time: [時間]State: [状態]
Validation: Success
━━━━━━━━━━━━━━━━
Status: Recipe is valid

入力値エラー時:

=== Recipe State Manager ===
Cooking Time: [時間]State: [状態]
Validation: Failed
━━━━━━━━━━━━━━━━
Error Type: IllegalArgumentException
Message: [エラーメッセージ]

状態エラー時:

=== Recipe State Manager ===
Cooking Time: [時間]State: [状態]
Validation: Failed
━━━━━━━━━━━━━━━━
Error Type: IllegalStateException
Message: [エラーメッセージ]

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

正常系
入力:
30
prepared
期待される出力:
=== Recipe State Manager ===
Cooking Time: 30 minutes
State: prepared
Validation: Success
━━━━━━━━━━━━━━━━
Status: Recipe is valid
正常系
入力:
-10
prepared
期待される出力:
=== Recipe State Manager ===
Cooking Time: -10 minutes
State: prepared
Validation: Failed
━━━━━━━━━━━━━━━━
Error Type: IllegalArgumentException
Message: Cooking time must be positive

あなたの解答

現在のモード: 自分のコード
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここにコードを書いてください

sc.close();
}
}
0 B / 5 MB

残り 10 回実行可能