6.2.5. 国際化された例外のカスタマイズ
6.2.5.1. メッセージ ID およびプロジェクトコードの例外メッセージへの追加
次の手順は、JBossLoggingTools を使用して作成された国際化された例外メッセージにメッセージ ID とプロジェクトコードを追加するために必要な手順を示しています。
メッセージ ID およびプロジェクトコードは、国際化された例外によって表示される各メッセージの前に付けられる一意の識別子です。これらの識別コードにより、アプリケーションのすべての例外メッセージの参照を作成できるため、誰かが理解できない言語で書かれた例外メッセージの意味を検索できます。
前提条件
- 国際化された例外が含まれるプロジェクトが存在する必要があります。「国際化された例外の作成」 を参照してください。
- 使用するプロジェクトコードを知っている必要があります。プロジェクトコードを 1 つ使用することも、各インターフェースに異なる複数のコードを定義することも可能です。
手順6.10 メッセージ ID およびプロジェクトコードの例外メッセージへの追加
プロジェクトコードを指定する
を使用してプロジェクトコードを指定しますprojectCode
の属性@MessageBundle
例外バンドルインターフェイスに付加された注釈。インターフェースに定義されるすべてのメッセージがこのプロジェクトコードを使用します。@MessageBundle(projectCode="ACCTS") interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }
メッセージ ID を指定する
を使用して、各例外のメッセージ ID を指定します。id
の属性@Message
例外を定義するメソッドに付加されたアノテーション。@Message(id=143, value = "The config file could not be opened.") IOException configFileAccessError();
重要
プロジェクトコードとメッセージ ID を両方持つメッセージでは、メッセージの前にプロジェクトコードとメッセージ ID が表示されます。プロジェクトコードとメッセージ ID の両方がない場合は、どちらも表示されません。
例6.3 国際化された例外の作成
この例外バンドルインターフェイスには、プロジェクトコード ACCTS があり、ID が 143 の単一の例外メソッドがあります。
@MessageBundle(projectCode="ACCTS") interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); @Message(id=143, value = "The config file could not be opened.") IOException configFileAccessError(); }
次のコードを使用すると、例外オブジェクトを取得および発生できます。
throw ExceptionBundle.EXCEPTIONS.configFileAccessError();
これにより、次のような例外メッセージが表示されます。
Exception in thread "main" java.io.IOException: ACCTS000143: The config file could not be opened. at com.company.accounts.Main.openCustomProperties(Main.java:78) at com.company.accounts.Main.go(Main.java:53) at com.company.accounts.Main.main(Main.java:43)