2017-10-24 5 views
0

나는 롬복 프로젝트를 사용하기 시작했고 의심의 여지가 있었다. 제가 한 가지 인자를 가진 방법을 가지고 있습니다. method(@NonNull arg). null 인수 method(null)으로 해당 메서드를 호출하면 java.lang.NullPointerException: arg 예외가 발생합니다.lombok을 사용하여 @NonNull 예외에서 내 자신의 사용자 지정 메시지를 어떻게 던질 수 있습니까?

그러나 예외 메시지가 다른 메시지 대신에 arg cannot be null과 같은 것을 말하고 싶습니다. (해당 메시지의 의미와 관계없이 @NonNull 주석을 사용하여 예외 메시지를 어떻게 큐싱하는지 알고 싶습니다.)

감사합니다.

답변

0

Lombok's documentation에 따르면 @NonNull 주석은 function의 맨 위에 if 문을 추가하여 null인지 확인합니다. 당신이 다른 라이브러리을 사용하지 않으려는 경우에 따라서 , 당신은 자신을 바로 할 수 있습니다 :

class NullArgumentException extends IllegalArgumentException { 

    public NullArgumentException() { 
     super("arg cannot be null"); 
    } 
} 

public class Test { 

    public static void main(String[] args) { 

     try { 
      foo(null); 
     } catch(IllegalArgumentException e) { 
      // or System.out.println(e.getMessage()) 
      e.printStackTrace(); 
     } 
    } 

    public static void foo(Integer i) throws IllegalArgumentException { 
     if(i == null) throw new NullArgumentException(); 
    } 
} 
0

롬복 @NonNull 허용하지 마십시오.
javax.validation.constraints 패키지의 @NotNull(message = "arg cannot be null")을 사용해보세요.

0

당신은 할 수 없습니다.

그러나 대신 IllegalArgumentException을 throw하도록 lombok을 구성 할 수 있습니다. 메시지는 arg is null입니다.

구성하려면 을 lombok.config 파일에 추가하십시오.

공개 사항 : 저는 롬복 개발자입니다.

+0

그리고 추가하는 것이 좋은 기능이라고 생각하지 않습니까? 메서드에 두 개의 인수 method (arg1, arg2)가 있다고 가정하고 "arg1과 arg2는 필수"와 같은 예외를 throw하려고합니다. –