小编Gap*_*rei的帖子

当函数具有参数前提条件时,返回Either / Option / Try / Or是否被视为可行/惯用的方法?

首先,我是Scala的新手,没有任何编写生产代码的经验,因此我缺乏对社区中被认为是好的/最佳实践的理解。我偶然发现了以下资源:

  1. https://github.com/alexandru/scala-best-practices
  2. https://nrinaudo.github.io/scala-best-practices/

在那里提到抛出异常不是很好的实践,这使我认为那时定义函数前提条件的好方法是什么,因为

抛出的函数有点谎言:它的类型暗含着它的全部功能。

一些研究之后,似乎使用Option/ Either/ Try/ Or(scalactic)是一个更好的办法,因为你可以使用类似T Or IllegalArgumentException的返回类型明确指出该功能实际上是局部的,使用异常的方式来存储信息,即可以包装在其他异常中。

但是缺乏Scala经验,我不太了解这对于实际项目是可行的方法还是可行的方法Predef.require。如果有人解释了Scala社区通常的工作方式以及原因,我将不胜感激。

我也曾在Scala中看到过功能断言,但是尽管这个想法本身看起来很有趣,但我认为PartialFunction它并不是很适合此目的,因为在这种情况下,经常会传递多个参数,并且元组看起来像是hack。

error-handling scala

2
推荐指数
2
解决办法
78
查看次数

标签 统计

error-handling ×1

scala ×1