关于在 JavaDoc 中对同一异常使用多个 @throws 标签的官方推荐/编码风格指南

Mar*_*ger 7 java javadoc exception code-documentation throws

我最近发现可以在 Javadoc 中对同一个异常使用多个@throws标签。

我的一位学生用它来记录他在《四子棋》中的一种方法:

/*
 * ...
 * @throws IllegalArgumentException if the number of rows or columns is invalid 
 * @throws IllegalArgumentException if one of the players has {@link Stone#None} as stone
 * @throws IllegalStateException if both players use the same stone color
 */
public void doSomething(...) { ... }
Run Code Online (Sandbox Code Playgroud)

现在我(和他)的问题是:对于是否使用单个@throws标签或“是否可以”为每个异常类型使用多个标签,是否有官方风格指南或一般建议?

Ste*_*n C 5

有一个针对 javadoc 的 Oracle 风格指南:

这是否算作“官方”取决于您的观点。不管怎样,我在该文档中看不到任何提及同一异常的多个标签。

然而,根据以下问答,标准Javadoc工具链支持@throws同一异常的多个标签;即它们中的每一个都会在生成的 HTML 中产生一个条目。

(我个人的观点是,如果您不这样做,javadocs 将更具可读性,但这只是我的观点。)