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

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

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

手順5.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 の両方がない場合は、どちらも表示されません。

例5.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 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)