Item 38. 인자의 유효성을 검사하라

메서드나 생성자를 구현시 받을 수 있는 인자에 대한 제한이 있다면 메서드 앞에서 유효성 검사를 해라

  • 유효성 검사 필요성

      발생가능 에러 : 어떤 객체의 상태가 비정상적으로 바뀔 우려가 있음
    
  • 유효성 검사 방법

  • public 메서드

     인자 유효성이 위반되었을 경우에 발생하는예외를 Javadoc의 @throws 태그를 사용 
    
     보통 IllegalArgumentException, IndexOutOfBoundsException, NullPointerException이 이용된다.
    
  • public 이 아닌 메서드

     확증문\(assertion\)을 사용
    
       - 확증 조건은 항상 참 , 조건에 만족하지 않으면 AssertionError 발생
    
       - 활성화하지 않은 확정문은 실행되지 않는다. 
    
         (활성화 java 인터프리터에 -ea( - enableassertions) 옵션 주어야한다)
    
    // 재귀적으로정렬하는 private 도움함수
    
       private static void sort(long a[], int offset, int length) {
    
        assert a != null;
    
        assert offset >= 0 && offset <= a.length;
    
        assert length >=0 && length <= a.length - offset;
    
       … // 계산수행
    
     }
    
  • 생성자

     private선언
    
  • 결론

    메서드는 일반적으로 적용될 수 있도록 설계하는 것이 바람직하므로 인자의 제약이 적을수록 좋다.
    

results matching ""

    No results matching ""