8장_아이템49 - ririkat/effective-java GitHub Wiki
아이템 49. 매개변수가 유효한지 검사하라
메서드나 생성자를 작성할 때면 그 매개변수들에 어떤 제약이 있을지 생각해야 한다.
- 제약을 문서화 하라
- 제약을 어겼을 때 발생하는 예외도 함께 문서화해라
- 제약조건을 명시적으로 검사하라
- public이 아닌 메서드는 단언문(assert)을 사용해 매개변수 유효성을 검증할 수 있다.
매개변수 검사 시 유의해야 하는 경우의 수
- 메서드가 수행되는 중간에 모호한 예외를 던지며 실패할 수 있다.
- 메서드는 잘 수행되나 잘못된 결과를 반환하는 경우
- 메서드는 문제없이 수행됐지만, 어떤 객체를 이상한 상태로 만들어 놓아서 미래의 알 수 없는 시점에 이 메서드와는 관련 없는 오류를 내는 경
⇒ 메서드 검사에 수행하면 실패원자성을 어기는 결과를 낳을 수 있다
매개변수 유효성 검사 예외
- 유효성 검사 비용이 지나치게 높거나, 실용적이지 않을 때
- 계산 과정에서 암묵적으로 검사가 수행될 때