6.2.5. 国際化された例外のカスタマイズ
6.2.5.1. メッセージ ID およびプロジェクトコードの例外メッセージへの追加 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の手順は、JBoss Logging Tools を使用して作成された国際化済み例外メッセージにメッセージ ID とプロジェクトコードを追加するために必要な作業を示します。
メッセージ ID およびプロジェクトコードは、国際化された例外によって表示された各メッセージの前に付けられる固有の識別子です。これらの識別コードによって、アプリケーションに対するすべての例外メッセージの参照を作成できるため、理解できない言語で書かれた例外メッセージの意味を検索できます。
要件
- 国際化された例外を持つプロジェクトが存在する必要があります。「国際化された例外の作成」を参照してください。
- 使用するプロジェクトコードを認識する必要があります。プロジェクトコードを 1 つ使用することも、各インターフェースに異なるコードを定義することも可能です。
手順6.10 メッセージ ID およびプロジェクトコードの例外メッセージへの追加
プロジェクトコードの指定
例外バンドルインターフェースに付けられる@MessageBundle
アノテーションのprojectCode
属性を使用して、プロジェクトコードを指定します。インターフェースに定義されるすべてのメッセージがこのプロジェクトコードを使用します。@MessageBundle(projectCode="ACCTS") interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }
@MessageBundle(projectCode="ACCTS") interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow メッセージ ID の指定
例外を定義するメソッドに付けられる@Message
アノテーションのid
属性を使用して、各例外に対してメッセージ ID を指定します。@Message(id=143, value = "The config file could not be opened.") IOException configFileAccessError();
@Message(id=143, value = "The config file could not be opened.") IOException configFileAccessError();
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重要
プロジェクトコードとメッセージ ID を両方持つメッセージでは、メッセージの前にプロジェクトコードとメッセージ ID が表示されます。プロジェクトコードとメッセージ ID の両方がない場合は、どちらも表示されません。
例6.3 国際化された例外の作成
以下の例外バンドルインターフェースは、プロジェクトコードが ACCTS で、ID が 143 の例外メソッドが 1 つあります。
次のコードを使用すると、例外オブジェクトを取得およびスローできます。
throw ExceptionBundle.EXCEPTIONS.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)
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)