4.5.6.2. 매개 변수를 사용하여 예외 메시지 사용자 정의

예외 번들 메서드는 예외 메시지에 표시할 추가 정보를 전달하도록 매개 변수를 지정할 수 있습니다. 예외 메시지에서 매개 변수의 정확한 위치는 명시적 또는 일반 색인을 사용하여 메시지 자체에 지정됩니다.

매개 변수를 사용하여 예외 메시지 사용자 정의

  1. 모든 유형의 매개 변수를 메서드 정의에 추가합니다. 유형에 관계없이 매개 변수의 String 표시는 메시지에 표시됩니다.
  2. 매개 변수 참조를 예외 메시지에 추가합니다. 참조는 명시적 또는 일반 인덱스를 사용할 수 있습니다.

    • 일반 인덱스를 사용하려면 각 매개 변수를 표시하려는 메시지 문자열에 %s 문자를 삽입합니다. %s 의 첫 번째 인스턴스는 첫 번째 매개 변수를 삽입하고, 두 번째 인스턴스는 두 번째 매개 변수를 삽입합니다.
    • 명시적 인덱스를 사용하려면 메시지에 %#$s 문자를 삽입합니다. 여기서 #은 표시하려는 매개 변수 수를 나타냅니다.

명시적 인덱스를 사용하면 메시지의 매개 변수 참조가 메서드에 정의된 것과 다른 순서로 표시됩니다. 매개 변수 순서가 다를 수 있는 번역 메시지에는 중요합니다.

중요

매개 변수 수는 지정된 메시지의 매개 변수에 대한 참조 수와 일치해야 합니다. 그렇지 않으면 코드가 컴파일되지 않습니다. @ cause 주석 으로 표시된 매개 변수는 매개변수 수에 포함되지 않습니다.

예제: 일반 인덱스 사용

@Message(id=2, value="Customer query failed, customerid:%s, user:%s")
void customerLookupFailed(Long customerid, String username);

예제: 명시적 색인 사용

@Message(id=2, value="Customer query failed, user:%2$s, customerid:%1$s")
void customerLookupFailed(Long customerid, String username);