019-005-009

複数リソースの安全な管理

上級

問題説明

複数リソースの安全な管理

この問題では: DatabaseConnectionQueryExecutorの2つのAutoCloseableリソースをtry-with-resourcesで管理するexecuteQueryメソッドを作成し、有効なクエリでは結果文字列を返し、不正な入力では適切な例外をスローするプログラムを作成します。

学習目標: try-with-resourcesで複数のリソースを管理しながら、例外処理を組み合わせる方法を理解する

概要

try-with-resources文では複数のリソースをセミコロンで区切って宣言でき、宣言の逆順で自動クローズされます。この問題ではリソース管理と入力バリデーションを組み合わせます。

仕様

DatabaseConnectionクラス(AutoCloseable実装)

QueryExecutorクラス(AutoCloseable実装)

  • コンストラクタ: 引数なし
  • execute(String query) メソッド:
    • querynullの場合、NullPointerException(メッセージ: "Query cannot be null")をスロー
    • queryが空文字列の場合、IllegalArgumentException(メッセージ: "Query cannot be empty")をスロー
    • 有効な場合、"Result: " + queryを返す

Mainクラス

  • static String executeQuery(String query) メソッドを定義する
    • try-with-resourcesでDatabaseConnectionQueryExecutorの両方を宣言する
    • executor.execute(query)の結果を返す

動作例

  • executeQuery("SELECT * FROM users")"Result: SELECT * FROM users"
  • executeQuery(null)NullPointerException: "Query cannot be null"
  • executeQuery("")IllegalArgumentException: "Query cannot be empty"

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

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

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

新規登録