4.5.6.3. 将一个例外指定为 Another Exception 的 Cause of Exception
异常捆绑包方法返回的异常可能会有另一个例外指定为根本原因。这可以通过向方法添加 参数并使用 @Cause 标注 参数。此参数用于传递导致的异常,且无法在异常消息中引用。
下列步骤演示了如何使用 @Cause 参数 从异常捆绑包更新方法以指示导致的异常。假设您已创建了要添加此功能的异常捆绑包。
向方法添加类型为
可浏览或其子类的参数。@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.annotations.Cause @Message(id=328, value = "Error calculating: %s.") ArithmeticException calculationError(@Cause Throwable cause, String msg);
import org.jboss.logging.annotations.Cause @Message(id=328, value = "Error calculating: %s.") ArithmeticException calculationError(@Cause Throwable cause, String msg);Copy to Clipboard Copied! Toggle word wrap Toggle overflow 调用 interface 方法以获取异常对象。最常见的用例是从
catch块中抛出新的异常,并将捕获的异常指定为原因。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下是将异常指定为另一例外的原因的示例。此异常捆绑包定义了一个返回类型 ArithmeticException 异常的方法。
以下示例演示了引发异常的操作,因为它尝试将整数除以零。这个异常会被捕获,使用第一个异常作为原因创建新的异常。
以下是从上例生成的异常消息: