요약
•
메서드가 던지는 예외를 문서화하자.
메서드가 던지는 예외를 문서화 하기
•
메서드가 던지는 예외는 해당 메서드를 올바로 사용하는데 아주 중요한 정보이기 때문에, 각 메서드마다 던지는 모든 예외를 문서화 해야 한다.
•
예외들을 문서화할 때는 다음 내용들을 지키는 것이 좋다.
◦
검사 예외는 항상 따로따로 선언하고, 각 예외가 발생하는 상황을 자바독의 @throws 태그를 사용하자.
▪
공통 상위 클래스 하나로 뭉뚱그려 선언하면 각 예외에 대처할 수 있는 힌트를 주지 못한다.
▪
또한 발생할 여지가 있는 다른 예외들까지 삼켜버릴 수 있어 API 사용성을 크게 떨어뜨린다.
◦
필수는 아니지만 비검사 예외도 검사 예외처럼 정성껏 문서화해두면 좋다.
▪
비검사 예외는 프로그래밍 오류를 뜻하는데, 자신이 만든 코드가 어떤 오류들이 발생할 지 생각해보면서 해당 오류가 나지 않도록 코딩하게 된다.
▪
비검사 예외를 문서화하는 것은 인터페이스 메서드에서는 특히 중요한데, 해당 조건이 인터페이스의 일반 규약에 속하게 되어 해당 인터페이스를 구현한 모든 구현체가 일관된 동작을 하도록 만들어준다.
▪
비검사 예외는 throws 목록에 넣지는 말고, 검사 예외와 분리해주는 것이 좋다.
◦
NullPointerException과 같이 하나의 클래스에 정의된 많은 메서드가 같은 이유로 같은 예외를 던진다면, 해당 예외를 각각의 메서드가 아닌 클래스 설명에 추가하는 방법이 있다.