본문 바로가기
Java/Effective Java

[아이템 49] 매개변수가 유효한지 검사하라

by setung 2022. 2. 14.

메서드와 생성자의 입력 매개변수의 값에 제약조건이 있다면 필수적으로 해야 할 것.

  • 메서드에 대한 문서화.
  • 메서드 몸체가 시작되기 전에 매개변수 유효성 검사.

메서드 몸체가 실행되기 전에 매개변수를 확인한다면 잘못된 값이 넘어왔을 때 즉각적이고 깔끔한 방식으로 예외를 던질 수 있다.

검사를 제대로 하지 못하면 잘못된 반환 값을 던지거나, 메서드와 관련 없는 예외를 던질 수 있으니 주의해야 한다.

 

아래 코드는 문서화와 유효성 검사의 전형적인 예이다.

BigInteger의 mod 메서드

 

자바 7엔 Objects.requireNonNull 메서드가 추가되어 간편하게 null 검사가 가능하다.

public static <T> T requireNonNull(T obj) {
    if (obj == null)
        throw new NullPointerException();
    return obj;
}

 

메서드 몸체 실행 전에 매개변수 유효성을 검사해야 한다는 규칙에도 예외가 있다.

  • 유효성 검사 비용이 지나치게 높거나 실용적이지 않을 때.
  • 계산 과정에서 암묵적으로 검사가 수행될 때.

댓글