如何记录异步结果,异常?

问题描述 投票:3回答:1

Javadoc有明确的规则来记录方法引发的返回值和异常。但是我们应该对从CompletionStageFuture等异步响应中返回/抛出的方法做些什么呢?

如果我使用@throws来记录异步抛出的异常,IDE会抱怨该方法不会抛出异常(直接)。它是对的,方法没有。

如果我记录了在@return部分中异步抛出的长异常列表,则难以阅读生成的文档。

这种情况的最佳做法是什么?如果可能,请参考已建立的图书馆作为示例。

asynchronous javadoc
1个回答
0
投票

对于它的价值,我目前正在使用以下语法,但我认为这不是一个既定的最佳实践:

/**
 * @param symbol the name of a stock ticker
 * @return the price of the ticker
 * <br> {@code @throws NullPointerException} if {@code symbol} is null
 * <br> {@code @throws IOException} if an I/O error occurs
 */
public CompletionStage<BigDecimal> getPrice(String symbol);

我的指导方针如下:

  • 异步抛出所有异常,即使对于参数前置条件等即时失败也是如此。这允许客户端将错误处理集中在一个地方。
  • 使用开发人员熟悉的相同@return语法记录@throws下的异常。

结果看起来很不错。

© www.soinside.com 2019 - 2024. All rights reserved.