Scala 有任何有用价值的成功
我有一些代码,如果存在异常,可能会生成异常,如果成功运行,则不会返回任何内容 我的问题是:有没有处理此类案件的最佳方法 实际上,我正在使用一个Scala 有任何有用价值的成功,scala,Scala,我有一些代码,如果存在异常,可能会生成异常,如果成功运行,则不会返回任何内容 我的问题是:有没有处理此类案件的最佳方法 实际上,我正在使用一个Try[Unit]返回Failure(exception)或Success(Unit),但我想知道这样做是否正确?是否有任何最佳实践?还是在这种情况下使用更好的方法 下面是我的代码概述: val result: Try[Unit] = Try { //some code that may generate exceptions Suc
Try[Unit]
返回Failure(exception)
或Success(Unit)
,但我想知道这样做是否正确?是否有任何最佳实践?还是在这种情况下使用更好的方法
下面是我的代码概述:
val result: Try[Unit] =
Try {
//some code that may generate exceptions
Success(Unit)
}
编辑1:如接受的答案和评论中所述,我使用Try
的方式是错误的。Try
将结果包装为Success
,将异常包装为Failure
,因此返回Success
没有意义,我们必须直接返回结果。在这种情况下,返回()
,如下所示:
val result: Try[Unit] =
Try {
//some code that may generate exceptions
()
}
键入
Try[Unit]
似乎是一种方法,以下是repl必须展示的内容:
scala> import scala.util._
import scala.util._
scala> val a: Try[Unit] = Try { 2 + 2 }
a: scala.util.Try[Unit] = Success(())
scala> a.toOption // check that there's really nothing in the returned value
res0: Option[Unit] = Some(())
scala> val b = Try { 2 + 2 }
b: scala.util.Try[Int] = Success(4)
请注意另外两件事:
Try
的方式是错误的,我将在下面给出一个正确的示例单位
伴生对象,请参见下面的正确方法:键入
Try[Unit]
似乎是一种方法,以下是repl必须展示的内容:
scala> import scala.util._
import scala.util._
scala> val a: Try[Unit] = Try { 2 + 2 }
a: scala.util.Try[Unit] = Success(())
scala> a.toOption // check that there's really nothing in the returned value
res0: Option[Unit] = Some(())
scala> val b = Try { 2 + 2 }
b: scala.util.Try[Int] = Success(4)
请注意另外两件事:
Try
的方式是错误的,我将在下面给出一个正确的示例单位
伴生对象,请参见下面的正确方法:那
.transform()
对你没有任何帮助。Try
块的结果已经是Success
或Failure
@jwvh我刚刚编辑了我的问题,以便它更清晰。转换
只是一个例子。我的问题是如何表示没有任何有用价值的成功
。感谢您的评论您仍然没有正确使用请尝试。您不需要直接声明Success()
或Failure()
。这就是Try
自动提供的功能。这样做在REPL中尝试{println(“go”)}
,看看你得到了什么。如果Try
代码没有遇到异常,那么它将返回一个成功
。.transform()
对您没有任何帮助。Try
块的结果已经是Success
或Failure
@jwvh我刚刚编辑了我的问题,以便它更清晰。转换
只是一个例子。我的问题是如何表示没有任何有用价值的成功
。感谢您的评论您仍然没有正确使用请尝试。您不需要直接声明Success()
或Failure()
。这就是Try
自动提供的功能。这样做在REPL中尝试{println(“go”)}
,看看你得到了什么。如果Try
代码没有遇到异常,则它将返回成功
。