4.5.3.3. 创建国际化例外
您可以使用 JBoss Logging Tools 创建和使用国际化的异常。
以下说明假定您要为使用 Red Hat CodeReady Studio 或 Maven 构建的现有软件项目添加国际化的异常。
本节不涵盖这些例外的所有可选功能或本地化过程。
-
配置项目的
pom.xml文件,以使用 JBoss Logging 工具。详情请查看 JBoss Logging Tools Maven 配置。 为异常创建一个接口。JBoss 日志工具在接口中定义了国际化的异常。为每个接口命名其定义的异常的描述性。接口有以下要求:
-
必须将其声明为
公开。 -
它必须标有
@MessageBundle。 接口必须定义与接口相同的消息捆绑包的字段。
示例:创建一个
例外捆绑包接口@MessageBundle(projectCode="") public interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }@MessageBundle(projectCode="") public interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
必须将其声明为
为每个例外向接口添加一个方法定义。以描述性方式命名每个方法表示的异常。每个方法都有以下要求:
-
它必须返回
例外对象或子类型例外。 -
它必须标有
@org.jboss.logging.annotations.Message注释。 -
@org.jboss.logging.annotations.Message的 value 属性必须设置为默认异常消息。这是如果没有可用的翻译,则会使用的消息。 如果返回的异常具有除消息字符串外还需要参数的构造器,则必须使用
@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);
@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);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
它必须返回
在您需要获得其中一个例外的地方,调用代码中的接口方法。方法不会抛出异常,它们返回异常对象,然后您可以抛出它。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
该项目现在支持国际化的异常,可以本地化。
请参阅 JBoss EAP 附带的 logging-tools quickstart,以获取完整的工作示例。