019-002-011
例外チェーンとcause設定
上級
問題説明
例外チェーンとcause設定
この問題では: 低レベル例外を高レベル例外にラップする「例外チェーン」パターンを実装し、原因の追跡を可能にするプログラムを作成します。
学習目標: 例外チェーン(cause)の仕組みと実務での活用方法を理解する
概要
例外チェーンは、低レベルの例外をキャッチして高レベルの例外に変換する際に、元の例外を原因(cause)として保持するパターンです。
仕様
DataAccessExceptionextendsException: メッセージとcauseを受け取るコンストラクタServiceExceptionextendsException: メッセージとcauseを受け取るコンストラクタRepositoryクラス:findById(int id)メソッド- id < 0 の場合:
DataAccessException("Invalid ID: " + id, new IllegalArgumentException("ID must be positive"))をスロー
- id < 0 の場合:
Serviceクラス:getUser(int id)メソッドRepository.findById()を呼び、DataAccessExceptionをキャッチしてServiceExceptionにラップ
- Mainクラスで例外チェーンを辿り、各レベルのメッセージを出力
出力形式
Service error: Failed to get user
Caused by: Invalid ID: -1
Root cause: ID must be positive
