아이템 74. 메서드가 던지는 모든 예외를 문서화하라
메서드가 던지는 예외는 그 메서드를 올바로 사용하는 데 아주 중요한 정보다. 따라서 예외 하나하나를 문서화 하는데 충분한 시간을 써라. 검사예외는 항상 따로따로 선언하고, 각 예외가 발생하는 상황을 자바독 @throws 태그를 사용하여 정확히 문서화하자. 극 단적인 예로 메서드가 Exception 이나 Throwable을 던진다고 선언해서는 안된다. 메서드 사용자에게 각 예외에 대처할 수 있는 힌트를 주지 못할뿐더러, 같은 맥락에서 발생할 여지가 있는 다른 예외들까지 삼켜버릴 수 있어 API 사용성을 크게 떨어뜨린다. (이 규칙의 유일한 예외는 main메서드다)
비검사 예외도 검사 예외처럼 정성껏 문서화 해두면 좋다. 메서드가 던질 수 있는 예외를 각각 @throws 태그로 문서화하, 비검사 예외는 메서드 선언의 throws목록에 넣지 말자.