[이펙티브 자바] 아이템 74. 메서드가 던지는 모든 예외를 문서화하라

June·2022년 4월 3일
0

[이펙티브자바]

목록 보기
67/72

예외는 아주 중요한 정보다.

검사 예외는 항상 딸로따로 선언하고, 각 예외 발생 상황을 자바독의 @throws 태그로 정확히 문서화하자. 공통 상위 클래스 하나로 뭉뚱그리지 말자.

유일한 예외는 main메서드다. main은 오직 JVM만이 호출하므로 Exception을 던져도 된다.

비검사 예외도 문서화해두면 좋다. public 메서드라면 필요한 조건을 문서화해야하고, 그 수단으로 좋은게 비검사 예외 문서화다.

단, 비검사 예외는 메서드 선언의 throws 목록에 넣지 말자.
자바독 유틸리티가 @throws 태그에도 명시한 예외와 @throws 태그에만 명시한 예외를 구분해준다. 그래서 프로그래머가 어느 것이 비검사 예외인지 바로 알 수 있다.

한 클래스에 정의된 많은 메서드가 같은 이유로 같은 예외를 던지면 클래스 차원에 설명을 붙일 수도 있다. NPE가 대표적인 예다. 클래스의 문서화 주석에 "인수로 null이 오면 NPE 반환" 이런식으로 적어도 좋다.

0개의 댓글