6.2.5.3. 別の例外の原因として 1 つの例外を指定
例外バンドルメソッドより返された例外に対し、他の例外を基礎となる原因として指定することができます。指定するには、パラメーターをメソッドに追加し、パラメーターに
@Cause アノテーションを付けます。このパラメーターは、原因となる例外を渡すために使用されます。このパラメーターは、例外メッセージでは参照できません。
次の手順は、
@Cause パラメーターを使用して原因となる例外を示し、例外バンドルよりメソッドを更新する方法を表しています。この機能に追加したい国際化された例外バンドルがすでに作成されていることを前提とします。
手順6.12 別の例外の原因として 1 つの例外を指定
パラメーターを追加します。
タイプのパラメーターを追加しますThrowableまたはメソッドのサブクラス。@Message(id=328, value = "Error calculating: %s.") ArithmeticException calculationError(Throwable cause, String msg);
@Message(id=328, value = "Error calculating: %s.") ArithmeticException calculationError(Throwable cause, String msg);Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーションを追加します。
追加します@Causeパラメーターへの注釈。import org.jboss.logging.Cause @Message(id=328, value = "Error calculating: %s.") ArithmeticException calculationError(@Cause Throwable cause, String msg);
import org.jboss.logging.Cause @Message(id=328, value = "Error calculating: %s.") ArithmeticException calculationError(@Cause Throwable cause, String msg);Copy to Clipboard Copied! Toggle word wrap Toggle overflow メソッドを呼び出します。
例外オブジェクトを取得するため、インターフェースメソッドを呼び出します。catch ブロックから新しい例外を発生させ、キャッチした例外を原因として使用するのが最も一般的なユースケースです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
例6.6 別の例外の原因として 1 つの例外を指定
この例外バンドルでは、ArithmeticException 型の例外を返す単一のメソッドを定義します。
このコードスニペットは、整数をゼロで除算しようとするため、例外を出力する操作を実行します。例外がキャッチされ、その最初の例外を原因として使用して新しい例外が作成されます。
例外メッセージは次のようになります。