6.2.2.3. 国際化された例外の作成
このタスクでは、国際化された例外を作成する方法とその使用方法を示します。本タスクでは、これらの例外のすべてのオプション機能または国際化のプロセスについて説明しません。
完全な例については、
logging-tools
クイックスタートを参照してください。
このタスクでは、Red Hat JBoss Developer Studio または Maven のいずれかでビルドされているソフトウェアプロジェクトがすでにあり、それに国際化された例外を追加することを前提としています。
手順6.3 国際化された例外を作成して使用する
JBossLoggingTools 設定を追加します
JBossLoggingTools をサポートするために必要なプロジェクト設定を追加します。「JBoss Logging Tools の Maven 設定」 を参照してください例外のインターフェースを作成します。
JBoss Logging Tools はインターフェースで国際化されたメッセージを定義します。定義される例外について、各インターフェイスにわかりやすい名前を付けます。インターフェースの要件は以下のとおりです。- 次のように宣言する必要があります
public
。 - 注釈を付ける必要があります
@org.jboss.logging.MessageBundle
。 - インターフェースと同じ型のメッセージバンドルであるフィールドをインターフェースが定義する必要があります。
@MessageBundle(projectCode="") public interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }
メソッド定義を追加する
各例外のインターフェースにメソッド定義を追加します。例外に対する各メソッドにその内容を表す名前を付けます。各メソッドの要件は次のとおりです。- タイプのオブジェクトを返す必要があります
Exception
またはのサブタイプException
。 - 注釈を付ける必要があります
@org.jboss.logging.Message
注釈。 - の値属性
@org.jboss.logging.Message
デフォルトの例外メッセージに設定する必要があります。このメッセージは翻訳がない場合に使用されます。 - メッセージ文字列の他にパラメーターを必要とするコンストラクターが返される例外にある場合は、
@Param
アノテーションを使用してこれらのパラメーターをメソッド定義に提供する必要があります。パラメーターは、コンストラクターと同じタイプおよび順序である必要があります。
@Message(value = "The config file could not be opened.") IOException configFileAccessError(); @Message(id = 13230, value = "Date string '%s' was invalid.") ParseException dateWasInvalid(String dateString, @Param int errorOffset);
invoke メソッド
例外を取得する必要があるコードでインターフェースメソッドを呼び出します。メソッドによって例外は発生されず、発生できるな例外オブジェクトがメソッドによって返されます。try { propsInFile=new File(configname); props.load(new FileInputStream(propsInFile)); } catch(IOException ioex) //in case props file does not exist { throw ExceptionBundle.EXCEPTIONS.configFileAccessError(); }
結果: プロジェクトで、現地語化できる国際化された例外がサポートされるようになります。