@throws, @exception 태그

@throws 태그는 발생할 수 있는 예외에 대한 설명을 표시 할 때 사용한다. 그리고 @exception태그와 '@throws'태그는 태그 이름이 다를뿐 동일하게 사용한다.

@throws class-name description

예외에 대한 설명을 표시

작성 위치 : 메소드
중복 작성 : 가능
출력 형식 : Throws

메소드 내에서 발생하는 예외에 대한 예외 클래스 이름과 설명을 입력한다. 사용 방법은 다음과 같다.

/ **
 * 주석의 설명문
 * 
 * @throws java.io.FileNotFoundException 지정된 파일을 찾을 수 없습니다
 * /

클래스 이름은 전체 패키지명 까지 모두 지정되지만 패키지 이름이 생략된 경우에는 다음의 순서에 따라 검색한다.

  1. 현재의 클래스 또는 인터페이스
  2. 외부를 둘러싸고 있는 클래스와 인터페이스 (가장 가까운 것으로 부터 검색)
  3. 슈퍼 클래스와 슈퍼 인터페이스 (가장 가까운 것으로부터 검색)
  4. 현재 패키지
  5. import 패키지, 클래스 및 인터페이스 (import 문장의 순서에 따라 검색)

여러 @throws 태그가 지정되는 경우에는 각각이 다른 행으로 표시된다.

실습

간단한 예를 실습해 보도록 하겠다.

import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Javadoc 테스트용 클래스
 */
public class Sample13 {

    /**
     * 파일 쓰기
     *
     * @throws FileNotFoundException 지정된 파일을 찾을 수 없습니다
     */
    public void writeToFile() throws FileNotFoundException {

    }

    /**
     * 파일 읽기
     *
     * @throws java.io.IOException 입출력 관련
     * @throws java.lang.SecurityException 보안 관련
     */
    public void readFromFile() throws IOException, java.lang.SecurityException {

    }

    /**
     * 파일 삭제
     *
     * @throws java.lang.SecurityException 보안 관련
     * @exception FileNotFoundException 지정된 파일을 찾을 수 없습니다
     */
    public void deleteFile() throws SecurityException {

    }

    /**
     * 파일 찾기
     */
    public void searchFile() throws FileNotFoundException {

    }

}

위에 소스 코드를 "Sample13.java"라는 파일명으로 저장하고 저장된 디렉토리에서 다음과 같이 실행한다.

$ javadoc -d doc Sample13.java

생성된 "doc" 디렉토리에 있는 "Sample13.html" 파일을 브라우저로 확인해 보자.

deleteFile 메소드는 @exception 태그로 작성한 항목도 @throws 태그를 작성했을 때와 동일하게 Throws에 표시되고 있다.

그리고 searchFile 메소드는 @throws 태그를 작성하지 않았지만, 발생할 수 있는 예외도 Javadoc를 자동으로 추출되어 표시되는 것을 볼 수 있다.

'Javadoc' 카테고리의 다른 글

[Javadoc] {@code} 태그  (0) 2019.10.20
[Javadoc] {@link}, {@linkplain} 태그  (0) 2019.10.20
[Javadoc] @throws, @exception 태그  (0) 2019.10.20
[Javadoc] @return 태그  (0) 2019.10.20
[Javadoc] @param 태그  (0) 2019.10.20
[Javadoc] @since 태그  (0) 2019.10.20

+ Recent posts