019-006-010

カスタム例外階層の設計

上級

問題説明

カスタム例外階層の設計

この問題では: 基底クラスAppExceptionを継承したValidationExceptionNotFoundExceptionを設計し、UserServiceクラスで条件に応じて異なる例外をスローし、Mainクラスでマルチレベルcatchにより処理するプログラムを作成します。

学習目標: カスタム例外処理の階層設計と、マルチレベルcatchによる例外の選択的処理を理解する

概要

実務のアプリケーションでは、エラーの種類を区別するためにカスタム例外階層を設計します。基底例外クラスから派生させた具体的な例外クラスを使い、catchブロックで種類ごとに異なる処理を行います。

仕様

  • AppExceptionExceptionを継承): メッセージを受け取るコンストラクタを持つ
  • ValidationExceptionAppExceptionを継承): メッセージを受け取るコンストラクタを持つ
  • NotFoundExceptionAppExceptionを継承): メッセージを受け取るコンストラクタを持つ
  • UserService クラス
    • void findUser(String name) throws AppException
    • nameが空文字列の場合: ValidationException("Name cannot be empty") をスロー
    • nameが "unknown" の場合: NotFoundException("User not found: unknown") をスロー
    • それ以外: "Found user: " + name を出力
  • Main クラス
    • UserServiceインスタンスを作成
    • findUser("") を呼び出し(ValidationException)
    • findUser("unknown") を呼び出し(NotFoundException)
    • findUser("Alice") を呼び出し(正常)
    • 各呼び出しはtry-catchで囲み、ValidationExceptionNotFoundExceptionAppException の順でcatch

出力形式

[VALIDATION] Name cannot be empty
[NOT_FOUND] User not found: unknown
Found user: Alice

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

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

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

新規登録