Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

아이템 74: 메서드가 던지는 모든 예외를 문서화하라 #73

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 아이템 74. 메서드가 던지는 모든 예외를 문서화하라

## 검사 예외는 항상 따로따로 선언하고, 각 예외 상황을 @throws 태그를 사용해 정확히 문서화하자.
- Exception이나 Throwable과 같이 공통 상위 클래스 던진다고 선언해서는 안 된다.
- 비검사 예외도 검사 예외처럼 문서화해두면 좋다.


## @throws 태그로 문서화하되, 비검사 예외는 메서드 선언부 throws에 넣지 말자.
```java
public void doSomething() throws RuntimeException { // 금지
...
}
```
- 자바독 유틸리티가 `@throws` 태그와 throws 선언부에 명시한 예외를 시각적으로 구분해준다.
- 검사 예외냐 비검사 예외냐에 따라 사용자가 해야할 일이 다르므로 구분해주어야 한다.


## 한 클래스에 정의된 많은 메서드가 같은 이유로 같은 예외를 던진다면 클래스 설명에 추가하는 방법도 있다.
- 예시) 클래스 문서화 주석에 `모든 메서드는 인수로 null이 넘어오면 NullPointerException을 던진다.`를 표시하는 방법