Java/Effective Java
[아이템 49] 매개변수가 유효한지 검사하라
setung
2022. 2. 14. 22:03
메서드와 생성자의 입력 매개변수의 값에 제약조건이 있다면 필수적으로 해야 할 것.
- 메서드에 대한 문서화.
- 메서드 몸체가 시작되기 전에 매개변수 유효성 검사.
메서드 몸체가 실행되기 전에 매개변수를 확인한다면 잘못된 값이 넘어왔을 때 즉각적이고 깔끔한 방식으로 예외를 던질 수 있다.
검사를 제대로 하지 못하면 잘못된 반환 값을 던지거나, 메서드와 관련 없는 예외를 던질 수 있으니 주의해야 한다.
아래 코드는 문서화와 유효성 검사의 전형적인 예이다.
자바 7엔 Objects.requireNonNull 메서드가 추가되어 간편하게 null 검사가 가능하다.
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
메서드 몸체 실행 전에 매개변수 유효성을 검사해야 한다는 규칙에도 예외가 있다.
- 유효성 검사 비용이 지나치게 높거나 실용적이지 않을 때.
- 계산 과정에서 암묵적으로 검사가 수행될 때.