Scala函数式编程:我应该使用';投掷';或';抛出新的';?

Scala函数式编程:我应该使用';投掷';或';抛出新的';?,scala,Scala,在Scala中进行一些函数编程,并且来自Java背景,我倾向于抛出以下异常: throw new MyException("something is wrong") 然而,我也看到人们省略了new: throw MyException("something is wrong") 哪一种方法更为惯用?我认为惯用的方法是完全避免异常,而是使用。Scala是一种函数式语言。函数应该返回值,而不是有副作用。例外情况是副作用或者提供了分别定义快乐路径和悲伤路径的方法。没关系。如果您试图遵循最佳函数编程

在Scala中进行一些函数编程,并且来自Java背景,我倾向于抛出以下异常:

throw new MyException("something is wrong")
然而,我也看到人们省略了
new

throw MyException("something is wrong")

哪一种方法更为惯用?

我认为惯用的方法是完全避免异常,而是使用。Scala是一种函数式语言。函数应该返回值,而不是有副作用。例外情况是副作用
或者
提供了分别定义快乐路径和悲伤路径的方法。

没关系。如果您试图遵循最佳函数编程/Scala实践,那么无论如何,您应该努力不抛出异常。如果异常类是一个对象,那么您可以忽略它。否则,你就要调用这个类了。关于
Try
Success
呢?@cricket\u 007当然,在你自己的回答中,建议这样做怎么样:-)不,我认为
或者
在没有更多问题背景的情况下被更广泛地使用在2.11中,Try是正确的偏向,并且具有支持有用语义的功能。在2.12中对这两个版本进行了更改后,我将改用它,因为它现在对更一般的用法提供了良好的支持。