본문 바로가기
[Effective Java] 메소드가 던지는 모든 예외를 문서화하자. [Effective Java] 메소드가 던지는 모든 예외를 문서화하자. - Javadoc 의 @throws 태그를 사용해서 항상 checked 예외는 별도로 선언하고, 각 예외가 발생하는 상황을 정확하게 문서화하자. 메소드가 던지는 예외가 많다고 해서 메소드 명세에 각 예외를 정확하게 선언하지 않고, 그 예외 클래스의 대표적인 슈퍼 클래스만 함축해서 나타내면 안 된다. - unchecked 예외의 문서 내역은 메소드가 성공적으로 실행되기 위한 사전조건(precondition)을 효과적으로 나타낸다. - 인터페이스에 정의된 메소드의 경우 자신이 던질 수 있는 unchecked 예외를 문서화하는 것이 "특히" 중요하다. 그 인터페이스의 보편적 계약 중 일부분이 되며, 인터페이스를 구현하는 여러 구현체들 간의.. 2017. 2. 28.
[Effective Java] 외부에 제공하는 모든 API 요소에 대해 문서화 주석을 넣자. [Effective Java] 외부에 제공하는 모든 API 요소에 대해 문서화 주석을 넣자. - 사용 가능한 API 라면 반드시 문서화해야 한다. 만일 문서화 주석 규칙에 친숙하지 않다면 배워야 한다. - API 를 문서화하려면, 외부에 제공하는 모든 클래스, 인터페이스, 생성자, 메소드, 필드의 선언부 앞에 문서화 주석을 넣어야 한다. 만일 어떤 클래스가 직렬화될 수 있다면 직렬화 형태도 문서화해야 한다. - 문서화 주석이 빠진 API 를 사용하는 것은 실망스럽고 에러가 생길 가능성이 많다. 유지보수 하기 쉬운 코드를 작성하려면 외부에 공개되지 않는 대부분의 클래스, 인터페이스, 생성자, 메소드, 필드에 대해서도 문서화 주석을 작성해야 한다. - 메소드의 문서화 주석에서는 메소드와 클라이언트 사이의 계.. 2017. 1. 23.
[Effective Java] 매개 변수가 유효한지 검사하기. [Effective Java] 매개 변수가 유효한지 검사하기. - 대부분의 메소드와 생성자는 자신들의 매개 변수로 전달될 수 있는 값에 제한을 둔다. 그런 모든 제약은 명확하게 문서화해야 하며, 메소드 몸체 코드의 맨 앞에서 검사하도록 해야 한다. 이것은 에러가 발생한 후 가능한 빨리 검출해야 한다는 일반적 원칙의 특별한 경우이다. 만일 사전 검사에 실패하면 에러의 검출이 불확실하게 되고, 에러가 생긴 소스 코드를 찾기가 더욱 어려워진다. - public 메소드의 경우는 javadoc 의 @throws 태그를 사용해서 매개 변수 값의 제약을 위반했을 때 발생되는 예외를 문서화한다. 일반적으로 IllegalArgumentException, IndexOutOfBoundsException, NullPointe.. 2017. 1. 9.
반응형