java - 是否应该在 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);
}
}
根据甲骨文:
“如果未经检查的异常可以通过方法或构造函数的执行抛出并传播到方法或构造函数边界之外,则不需要在方法或构造函数的 throws 子句中声明它们。”
我是否必须在 JavaDoc 中描述异常(没有@throws
子句,但只描述?)在 JavaDoc 中描述这种未经检查的异常的最佳方法是什么?
解决方案
您正在为您的方法的用户编写 Javadoc。如果该用户知道它可能会引发异常是有用的,请记录它!
NoUserFoundException
在您的情况下,如果找不到用户,用户知道抛出 a 似乎确实很有用。
在其他情况下,它的用处不大。例如,在许多情况下,NullPointerException
如果参数为空,则抛出 a 的事实没有记录在 Javadoc 中,因为它通常以某种方式暗示参数不能为空。
顺便说一句,Oracle 是在讨论throws
出现在方法声明之后的类,而不是 Javadoc。@throws
如果您决定记录未检查的异常,则使用该子句是有意义的。
推荐阅读
- laravel - 如何在 ubuntu 18.04 上安装 laravel
- java - Java 8 流和 foreach 循环
- java - Drools - 动态日期比较与当前日期的操作
- r - 如何将 checkr 包与 learnr 一起使用?
- javascript - 未定义的输入、动态页面更改、html 中的 javascript
- javascript - 将 Create-React-App 与 antd 一起使用
- postgresql - 在任何地方连接 postgreSQL 和自动化时,密码加密身份验证不支持错误
- php - 如何限制特定网络的应用程序
- ios - UNTimeIntervalNotificationTrigger
- reactjs - 我在 GitHub Pages 中部署的 React 项目总是显示我的 NotFound 组件