java - 在 Javadoc 中使用多少 @throws

标签 java exception language-agnostic javadoc

我应该在我的 javadoc 或任何 API 中自由使用 @throws 吗?例如,如果我有:

LDAPException
NullPointerException
IllegalArgumentException
Exception

我应该为每一个都使用@throws,还是应该只说@throws Exception

最佳答案

理想情况下,javadoc @throws 子句应该是您的实际方法 throws 子句的超集。

例如,如果您的方法throws IOException,您可能不仅有一个@throws IOException来解释发生一般I/O错误的情况,而且还有@throws FileNotFoundException(IOException 的子类)来讨论为什么会发生这种情况。

同样,即使您没有声明 throws NullPointerException,您也可以记录 @throws NullPointerException 以说明这种情况可能发生的时间,因为它是一个未经检查的异常并且不会需要(通常不)写在方法签名中。

你应该@throws Exception吗?不,但是,更一般地说,您不应该throws Exception。那是一个不同的讨论。但结果,不,在 javadoc 中重复这种不好的做法是不好的。它会谈论什么——可能发生的不同异常?那么为什么不用 @throws 将它们一一记录呢?

关于java - 在 Javadoc 中使用多少 @throws,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082419/

相关文章:

java - 我的布局标记使用带有 ImageView 和 TextView 的 ScrollView 移动

java - 我可以避免 Java 中的 catch block 吗?

exception - ARM9 SVC_STACK 超出范围?

java - kotlin写的接口(interface)为什么一定要实现接口(interface)中的具体方法

Java - 用于多个测试的模拟私有(private)静态构造函数

language-agnostic - 我应该如何根据 zip 填充城市/州字段?

algorithm - 如何计算向量与垂直方向的夹角?

language-agnostic - "program to an interface"是什么意思?

java - 无法从没有公共(public)类的文件扩展

c++ - 在 MFC 回调函数/事件处理程序中捕获异常