4.5.6. 국제화된 예외 사용자 정의
4.5.6.1. 예외 메시지에 메시지 ID 및 프로젝트 코드 추가
메시지 ID와 프로젝트 코드는 국제화된 예외에 의해 표시되는 각 메시지 앞에 오는 고유한 식별자입니다. 이러한 식별 코드를 통해 애플리케이션의 모든 예외 메시지에 대한 참조를 생성할 수 있습니다. 이를 통해 사람이 이해할 수 없는 언어로 작성된 예외 메시지의 의미를 조회할 수 있습니다.
다음 절차에서는 JBoss Logging Tools를 사용하여 생성된 국제화된 예외 메시지에 메시지 ID 및 프로젝트 코드를 추가하는 방법을 설명합니다.
사전 요구 사항
- 국제화된 예외가 있는 프로젝트가 이미 있어야 합니다. 자세한 내용은 Create Internationalized Exceptions를 참조하십시오.
- 사용할 프로젝트 코드를 알아야 합니다. 단일 프로젝트 코드를 사용하거나 각 인터페이스에 대해 다른 코드를 정의할 수 있습니다.
예외 메시지에 메시지 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할 수 있습니다.
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)