是否应在JavaDoc中描述未经检查的异常?

我有以下代码:

public User getUserById(Long id) {
checkUserExists(id);
return repo.findOne(id);
}

private void checkUserExists(Long id) {
    if (id == null || !repo.exists(id)) {
        throw new NoUserFoundException("No User exists with id: " +id);
    }
}

根据甲骨文:

“Unchecked exceptions do not need to be declared in a method or constructor’s throws clause if they can be thrown by the execution of the method or constructor and propagate outside the method or constructor boundary.”

我是否仍必须在JavaDoc中描述该异常(没有@throws子句,而仅描述?)在JavaDoc中描述这种未经检查的异常的最佳方法是什么?

先感谢您!

解决方法:

您正在为方法的用户编写Javadoc.如果知道该异常可能引发异常对于该用户有用,请记录该异常!

在您的情况下,如果找不到用户,则知道抛出NoUserFoundException似乎对用户确实有用.

在其他情况下,它用处不大.例如,在许多情况下,Javadoc中没有记录如果参数为null则引发NullPointerException的事实,因为通常以某种方式暗示参数不能为null.

顺便说一句,Oracle谈论的是在方法声明之后出现的throws类,而不是Javadoc.如果决定记录未检查的异常,则可以使用@throws子句.

上一篇:在Java API / Jar中隐藏公共方法


下一篇:javadoc生成API文档