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

[ Item 74 ] 메서드가 던지는 모든 예외를 문서화하라 #76

Open
qkrqudcks7 opened this issue Jun 19, 2022 · 0 comments
Open
Assignees
Labels
10장 예외

Comments

@qkrqudcks7
Copy link

메서드가 던지는 모든 예외를 문서화하라

검사 예외는 항상 따로따로 선언하고, 각 예외가 발생하는 상황을 자바독의 @throws 태그를 사용하여 정확히 문서화하자

잘못된 예시

public void example() throws Exception {
// todo
}

올바른 예시

public void example() throws ClassNotFoundException{
// todo
}
  • 모든 예외를 Exception 으로 던지게 된다면 메서드 사용자는 각 예외에 대처할 수 있는 방법이 없다.
  • 다른 예외까지 삼켜버릴 수 있기 때문에 API 활용성이 크게 떨어진다.
  • Main 메서드는 오직 JVM만이 호출하므로 Excpetion을 던지도록 선언해도 괜찮다.

메서드가 던질수 있는 예외를 각각 @throws 태그로 문서화하되 , 비검사 예외는 메서드 선언의 thorws 목록에 넣지말자.

잘못된 예시

public void example() throws SQLException,ClassNotFoundException,NullPointerException{
    Class.forName("example");

}

올바른 예시

public void example() throws SQLException,ClassNotFoundException{
    Class.forName("example");

}
  • 검사냐 비검사냐에 따라 API 사용자가 해야 할 일이 달라지므로 이 둘을 확실히 구분하자.

결론

  • 메서드가 던질 가능성이 있는 모든 예외를 문서화 하라
  • 문서화에는 자바독 @throws 태그를 사용하면된다.
  • 검사 예외만 메서드 선언의 throws 문에 일일이 선언하고 , 비검사 예외는 메서드 선언에는 기입하지말자.
  • 발생가능한 예외를 문서로 남기지 않으면 다른 사람이 그 클래스나 인터페이스를 효과적으로 사용하기 어렵다.
@qkrqudcks7 qkrqudcks7 self-assigned this Jun 19, 2022
@qkrqudcks7 qkrqudcks7 added the 10장 예외 label Jun 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10장 예외
Projects
None yet
Development

No branches or pull requests

1 participant