4.5.3.3. 국제화된 예외 만들기
JBoss Logging Tools를 사용하여 국제화된 예외를 생성하고 사용할 수 있습니다.
다음 지침에서는 Red Hat CodeReady Studio 또는 Maven을 사용하여 빌드된 기존 소프트웨어 프로젝트에 국제화된 예외를 추가하려고 한다고 가정합니다.
이 섹션에서는 일부 선택적 기능이나 이러한 예외를 지역화하는 과정을 다루지는 않습니다.
-
JBoss Logging Tools를 사용하도록 프로젝트의
pom.xml파일을 구성합니다. 자세한 내용은 JBoss Logging Tools Maven Configuration을 참조하십시오. 예외에 대한 인터페이스를 만듭니다. JBoss Logging Tools는 인터페이스에서 국제화된 예외를 정의합니다. 정의하는 예외에 대해 각 인터페이스를 설명하여 이름을 지정합니다. 인터페이스에는 다음 요구 사항이 있습니다.
-
공용으로 선언해야 합니다. -
@MessageBundle으로 주석을 달아야 합니다. 인터페이스는 인터페이스와 동일한 유형의 메시지 번들인 필드를 정의해야 합니다.
예제:
예외Bundle인터페이스 만들기@MessageBundle(projectCode="") public interface ExceptionBundle { ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class); }
-
각 예외에 대해 인터페이스에 메서드 정의를 추가합니다. 각 메서드가 나타내는 예외에 대해 설명적으로 이름을 지정합니다. 각 방법에는 다음 요구 사항이 있습니다.
-
Exception오브젝트 또는 하위 유형인Exception을 반환해야 합니다. -
@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);
-
예외 중 하나를 가져와야 하는 코드에서 인터페이스 메서드를 호출합니다. 메서드에서 예외를 발행하지 않고 예외 오브젝트를 반환하여 트리거할 수 있습니다.
try { propsInFile=new File(configname); props.load(new FileInputStream(propsInFile)); } catch(IOException ioex) { //in case props file does not exist throw ExceptionBundle.EXCEPTIONS.configFileAccessError(); }
이 프로젝트는 이제 지역화할 수 있는 국제화된 예외를 지원합니다.
전체 작업 예는 JBoss EAP와 함께 제공되는 logging-tools 빠른 시작을 참조하십시오.