019-004-012

例外翻訳パターン

上級

問題説明

例外翻訳パターン

この問題では: 低レベルの例外(NumberFormatException)をキャッチし、ビジネス層に適した例外(IllegalArgumentException)に変換して再スローする例外翻訳パターンを実装します。

学習目標: 例外翻訳パターンにより、レイヤー間の例外を適切に変換する方法を理解する

概要

レイヤードアーキテクチャでは、低レベルの実装詳細に関する例外を上位レイヤーに直接公開するのは良くありません。例外翻訳パターンでは、低レベル例外をキャッチして、ビジネスロジックの文脈に合った例外に変換します。元の例外はcauseとして保持します。

仕様

  • OrderServiceクラス: processOrder(String quantityStr, String priceStr)メソッド
  • 数値変換失敗時のNumberFormatExceptionをIllegalArgumentExceptionに変換
  • 変換後の例外メッセージにビジネス文脈を含める
  • 元の例外をcauseとして設定
  • Mainで呼び出して正常ケースとエラーケースを出力

出力形式

Order total: 1500
Business error: Invalid order quantity: not_a_number
Caused by: java.lang.NumberFormatException

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

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

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

新規登録