019-004-001
例外の伝播:ポイント使用検証システム
初級
問題説明
例外の伝播:ポイント使用検証システム
この問題では: 保有ポイントと使用ポイントを標準入力から読み込み、validatePointUsage()で残高超過時にIllegalArgumentExceptionをスローしてusePoints()→main()へ例外を伝播させるポイント使用検証システムを作成し、結果を標準出力に表示するプログラムを作成します。
学習目標: 例外がメソッド呼び出しを通じて伝播する仕組みを理解する
ポイントカードの使用ポイント数を検証するシステムを作成します。使用ポイントが保有ポイントを超える場合、validatePointUsage()メソッドでIllegalArgumentExceptionをスローし、その例外がusePoints()メソッドを経由してmain()メソッドまで伝播する様子を学びます。各中間メソッドで明示的にキャッチしなくても、例外は自動的に呼び出し元へ伝播します。
入力
1行目: 保有ポイント数
2行目: 使用ポイント数
出力
=== Point Usage Validation ===
Balance: [保有ポイント]pt
Usage: [使用ポイント]pt
Validation: Success
━━━━━━━━━━━━━━━━
Status: Points used successfully
または例外発生時:
=== Point Usage Validation ===
Balance: [保有ポイント]pt
Usage: [使用ポイント]pt
Validation: Failed
━━━━━━━━━━━━━━━━
Error: Usage exceeds balance (required: [使用ポイント], available: [保有ポイント])
具体例
例1: 正常なポイント使用(500/1000)
入力:
1000
500
出力:
=== Point Usage Validation ===
Balance: 1000pt
Usage: 500pt
Validation: Success
━━━━━━━━━━━━━━━━
Status: Points used successfully
例2: 残高超過エラー(1000/500)
入力:
500
1000
出力:
=== Point Usage Validation ===
Balance: 500pt
Usage: 1000pt
Validation: Failed
━━━━━━━━━━━━━━━━
Error: Usage exceeds balance (required: 1000, available: 500)
例3: 境界値(1000/1000)
入力:
1000
1000
出力:
=== Point Usage Validation ===
Balance: 1000pt
Usage: 1000pt
Validation: Success
━━━━━━━━━━━━━━━━
Status: Points used successfully
テストケース例
※ 出力例はプログラミングの国際標準に準拠し英語で表示しています
正常系
入力:
2000 800
期待される出力:
=== Point Usage Validation === Balance: 2000pt Usage: 800pt Validation: Success ━━━━━━━━━━━━━━━━ Status: Points used successfully
異常系
入力:
300 600
期待される出力:
=== Point Usage Validation === Balance: 300pt Usage: 600pt Validation: Failed ━━━━━━━━━━━━━━━━ Error: Usage exceeds balance (required: 600, available: 300)
あなたの解答
現在のモード:● 自分のコード
99
1
2
3
4
5
6
7
8
9
10
›
⌄
⌄
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 回実行可能
