예외는 아주 중요한 정보다.
검사 예외는 항상 딸로따로 선언하고, 각 예외 발생 상황을 자바독의 @throws 태그로 정확히 문서화하자. 공통 상위 클래스 하나로 뭉뚱그리지 말자.
유일한 예외는 main
메서드다. main
은 오직 JVM만이 호출하므로 Exception
을 던져도 된다.
비검사 예외도 문서화해두면 좋다. public
메서드라면 필요한 조건을 문서화해야하고, 그 수단으로 좋은게 비검사 예외 문서화다.
단, 비검사 예외는 메서드 선언의 throws 목록에 넣지 말자.
자바독 유틸리티가 @throws
태그에도 명시한 예외와 @throws
태그에만 명시한 예외를 구분해준다. 그래서 프로그래머가 어느 것이 비검사 예외인지 바로 알 수 있다.
한 클래스에 정의된 많은 메서드가 같은 이유로 같은 예외를 던지면 클래스 차원에 설명을 붙일 수도 있다. NPE
가 대표적인 예다. 클래스의 문서화 주석에 "인수로 null이 오면 NPE 반환" 이런식으로 적어도 좋다.