我有以下代码:
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子句.