019-006-007
カスタム例外の作成と利用
中級
問題説明
カスタム例外の作成と利用
この問題では: InsufficientFundsExceptionカスタム例外クラスとBankAccountクラスを作成し、出金時の残高検証と例外処理を実装するプログラムを作成します。
学習目標: 独自の例外クラスを作成し、ビジネスロジックに応じた例外処理を実装する方法を理解する
概要
銀行口座の残高不足を表すカスタム例外InsufficientFundsExceptionを作成し、出金時の検証に使用します。
仕様
InsufficientFundsExceptionクラス(Exceptionを継承)
- フィールド:
double shortfall(不足額) - コンストラクタ: メッセージと不足額を受け取り、
super(message)でスーパークラスを初期化 - メソッド:
getShortfall()で不足額を返す
BankAccountクラス
- フィールド:
double balance(残高) - コンストラクタ: 初期残高を受け取る
- メソッド:
withdraw(double amount)で出金処理を行う- 残高不足の場合(
amount > balance)、メッセージ"Balance insufficient for withdrawal"と不足額でInsufficientFundsExceptionをスローする - 成功した場合、残高を減らす
- 残高不足の場合(
- メソッド:
getBalance()で残高を返す
Mainクラス
static void withdraw(double initialBalance, double amount) throws InsufficientFundsException- 指定された初期残高で
BankAccountを作成し、withdraw(amount)を呼び出す - 残高不足の場合は
InsufficientFundsExceptionがそのままスローされる
- 指定された初期残高で
mainメソッドを含む(コンパイル用)
テスト方式
各テストケースはMain.withdraw(double, double)を直接呼び出し、以下を検証します:
- 有効な出金(例: 残高1000.0から300.0出金)では例外がスローされないこと
- 無効な出金(例: 残高1000.0から1500.0出金)では
InsufficientFundsExceptionがスローされ、メッセージが"Balance insufficient for withdrawal"であること
