4.5.6. 自定义国际化例外
4.5.6.1. 添加消息 ID 和项目代码到例外消息
消息 ID 和项目代码是国际化异常所显示的每条消息的前面的唯一标识符。通过这些识别代码,可以创建对应用中所有异常消息的引用。这允许用户查找以自己不理解的语言编写的异常消息的含义。
以下步骤演示了如何将消息 ID 和项目代码添加到使用 JBoss Logging Tools 创建的国际化异常消息中。
先决条件
- 您必须已有具有国际化例外的项目。详情请查看 创建国际化例外。
- 您需要知道您将要使用的项目代码。您可以使用单个项目代码,或者为每个接口定义不同的项目代码。
添加消息 ID 和项目代码到例外消息
使用附加至异常捆绑包接口的
@MessageBundle 注释的
projectCode
属性来指定项目代码。接口中定义的所有消息都将使用该项目代码。@MessageBundle(projectCode="ACCTS") interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }
使用与定义异常的方法关联的
@Message
注释的id
属性,指定各个异常的消息 ID。@Message(id=143, value = "The config file could not be opened.") IOException configFileAccessError();
重要
包含项目代码和消息 ID 的消息在消息前面显示。如果消息同时没有项目代码和消息 ID,则也不会显示。
示例:国际化例外
这个异常捆绑包接口示例使用 "ACCTS" 的项目代码。它包含一个异常方法,其 ID 为 "143"。
@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 ExceptionBundle.EXCEPTIONS.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)