我如何定义一个类型来表示一个可以提供整数的流,但也可能失败



假设我想定义一个"NumberLoader",它将根据需要从另一个地方加载整数,所以我可以给它一个类型:

type NumberLoader = Stream[Integer]

但是它可能会在加载时抛出错误(例如,它通过网络从另一台计算机加载整数),所以类型中应该有一些NetworkError

最后,我将它定义为:

type NumberLoader = Stream[Either[NetworkError, Integer]]

这似乎有效,但我觉得有点奇怪。这是一个好主意吗?

您想要表示

a Stream of something which can be either a NetworkError or an Integer
  Stream[                          Either[  NetworkError,      Integer]]

让字体看起来更合适。

您可以选择使用FutureTry来代替Either,但是您将失去指定您期望的异常类型的灵活性,因为FutureTry失败都包含通用的Throwable

相关内容

  • 没有找到相关文章

最新更新