如何使用方法处理错误或返回值



我想测试,如果值是Throwable,如果是,我想打印一个错误消息

如果值不是Throwable,我想返回它。

我有这个代码,它给了我以下错误信息,当我悬停在"值"应该在最后一行返回:

Found: (value: Either[Throwable, A]) Required: A)

def throwAndPlayAgainOrGet[A](value: Either[Throwable, A]): A =
{
if(value.isLeft) println("error: " + value) + playAgain
value
}

我的问题:

我该怎么做呢?

你可以使用模式匹配:

def throwAndPlayAgainOrGet[A](value: Either[Throwable, A]): A = value match {
case Left(err) => {
println(err)
someDefaultAValue // or throw err
}
case Right(v) => v
}

最新更新