【发布时间】:2014-04-11 02:22:23
【问题描述】:
我在 Scala 项目中遇到了类似 java 的代码。如何使它更符合 Scala 的习惯并且没有副作用(适当地处理异常)?
我正在考虑使用 scalaz 析取 / (我知道我也可以使用 Scala,但我猜我更喜欢右偏)。在一个函数中,有一些这样的 if 检查(上面的一个是一个例子)会抛出一种或另一种类型的异常。如何让这样的代码更符合 Scala 的习惯?
编辑: 问题不在于如何将 Java 空检查转换为 Scala Idiomatic,我已经在这样做了。例如关注
hpi.fold(throw new Exception("Instance not found for id " + processInstanceId)) { h =>
val pi = new ProcessInstance(taskResponse)
现在现有函数的返回类型是某个值,例如“ProcessInstance”,例如但在我看来是误导。调用者永远不会知道这是否会引发异常,所以我的问题更多是关于从这些函数返回 Either[Error,Value] 。如果我有一些这样的异常被捕获到一个函数中,如何将它们全部累积并反映到返回类型中?
【问题讨论】:
标签: scala