6.2.5. 国際化された例外のカスタマイズ

6.2.5.1. メッセージ ID とプロジェクトコードを例外メッセージに追加する

以下の手順は、JBoss ロギングツールを使用して作成された国際化済み例外メッセージにメッセージ ID とプロジェクトコードを追加するために必要な作業を示します。
メッセージ ID とプロジェクトコードは国際化された例外によって表示された各メッセージの前に付けられる固有の識別子です。これらの識別コードによってアプリケーションに対する全例外メッセージの参照を作成できるため、理解できない言語で書かれた例外メッセージの意味をルックアップすることが可能です。

要件

  1. 国際化された例外を持つプロジェクトが存在する必要があります。「国際化された例外の作成」を参照してください。
  2. 使用するプロジェクトコードを認識する必要があります。プロジェクトコードを 1 つ使用することも、各インターフェースに異なるコードを定義することも可能です。

手順6.10 メッセージ ID とプロジェクトコードを例外メッセージに追加する

  1. プロジェクトコードの指定

    例外バンドルインターフェースに付けられる @MessageBundle アノテーションの projectCode 属性を使用してプロジェクトコードを指定します。インターフェースに定義されるすべてのメッセージがこのプロジェクトコードを使用します。
    @MessageBundle(projectCode="ACCTS")
    interface ExceptionBundle
    {
       ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class);
    }
    
  2. メッセージ ID の指定

    例外を定義するメソッドに付けられる @Message アノテーションの id 属性を使用して各例外に対してメッセージ ID を指定します。
    @Message(id=143, value = "The config file could not be opened.")
    IOException configFileAccessError();
    

重要

プロジェクトコードとメッセージ ID を両方持つメッセージでは、メッセージの前にプロジェクトコードとメッセージ ID が表示されます。プロジェクトコードとメッセージ ID の両方がない場合は、どちらも表示されません。

例6.3 国際化された例外の作成

この例外バンドルインターフェースは、プロジェクトコード ACCTS と ID が 143 の例外メソッドを 1 つ持っています。
@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)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。