메서드를 올바르게 사용하려면, 메서드에서 던져지는 예외에 대한 설명이 문서에 있어야 한다. 따라서 예외 문서화는 아주 중요하다
점검지정 에외는 독립적으로 선언하고, 해당 예외가 발생하는 상황은 Javadoc @throws 태그를 사용해서 정확하게 밝혀라. 하위 예외 클래스를 여럿 거느린 상위 예외 클래스의 이름을 메서드 선언부에 나열하면 안된다는 것이다. 극단적인 예로 "throws Exception" , "throws Throwable" 등이 있다.
Javadoc @throws 태그를 사용해서 메서드에서 발생 가능한 모든 무점검 예외에 대한 문서를 남겨라. 하지만 메서드 선언부의 throws 뒤에 무점검 예외를 나열하진 마라. 그래야 API 사용자가 무엇이 점검지정 예외이고 무엇이 무점검 예외인지 알 수 있다. 그 둘의 임무가 서로 다르기 때문에 구분해서 예외를 알려줘야 한다.
요약
메서드가 던질 가능성이 있는 모든 예외를 문서로 남겨라. 점검 지정 예외뿐만 아니라, 무점검 예외에도 문서를 만들라. 일반 메서드뿐 아니라, abstract메서드에도 문서를 만들라. 점검지정 예외는 메서드의 throws 절에 나열하고, 무점검 예외는 throws 절에는 적지마라. 메서드가 던질 가능성이 있는 예외에 대해 문서를 남기지 않으면, 다른 사람이 효과적으로 사용할 수 있는 클래스나 인터페이스는 만들기 힘들거나,어렵다
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[예외]규칙64. 실패 원자성 달성을 위해 노력하라 (0) | 2017.05.07 |
---|---|
[예외]규칙63. 어떤 오류인지 드러내는 정보를 상세한 메세지에 담으라 (0) | 2017.05.07 |
[예외]규칙61. 추상화 수준에 맞는 예외를 던져라 (0) | 2017.05.07 |
[예외]규칙60. 표준 예외를 사용하라 (0) | 2017.05.06 |
[예외]규칙59. 불필요한 점검지정 예외 사용은 피하라 (0) | 2017.05.06 |