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"であること

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録