Scala函数式编程:我应该使用'throw'还是'throw new'?
- 论坛
- Scala函数式编程:我应该使用'throw'还是'throw new'?
13 浏览
匿名的
0 Comments
在Scala函数式编程中,应该使用'throw'还是'throw new'?这个问题的出现是因为Scala是一种函数式语言,函数应该返回值而不是产生副作用。而异常就属于副作用。解决方法是避免使用异常,而是使用'Either'代替。'Either'可以让你定义一个成功路径和一个失败路径。
另外,还某些情况下了'Try'和'Success'。但是,这里的建议是使用'Either',因为它更广泛地用于解决问题。
在Scala 2.11中,'Try'已经得到了适当的支持,并具有支持有用语义的功能。而在Scala 2.12中,'Either'也进行了改变,现在对更一般的用法有了良好的支持。因此,建议使用'Either'作为解决方法。