Подтвердить что ты не робот

В javadoc, в чем разница между тегами @throws и @exception?

Возьмем следующую реализацию массива символов на основе массива, например:

public char peek() throws Underflow {
    if (!isEmpty()) {
        return stack[pos];
    } else {
        throw new Underflow("Peeking at an empty stack.");
    }
}

Назад, когда я использую только текстовый редактор, я всегда использую тег @exception, но теперь моя IDE (Netbeans) использовала @throws при создании javadoc.

Итак, мой вопрос в том, в чем разница между ними и когда следует выбирать другую (используя приведенный выше код)?

4b9b3361

Ответ 1

Нет, они синонимы. Из документов:

Документация Исключения с тегом @throws
ПРИМЕЧАНИЕ. Теги @throws и @exception являются синонимами.

Ответ 2

@throws был добавлен, потому что это ключевое слово (предложение "throws" в объявлении метода),

и, как глагол, более естественно читать. Это читается как предложение:

@throws NullPointerException

хотя это кажется более избыточным:

@exception NullPointerException

В противном случае оба являются синонимами

Ответ 3

@exception не является 100% правильным, если вы выбрали код Throwable. @throws точнее. (Я понимаю, что для использования throw new Throwable() нет хорошего варианта использования, но теоретически это разрешено.)