常见的米姆我使用Scala的精彩Try
结构时,看到的是:如果无法从尝试执行得到的返回值抛出异常清洁的方式
Try(canThrowException) match {
case Success(result) => result
case Failure(e) => throw new Exception("Couldn't do it", e)
}
我经常想使这个构造更优雅一点:
Try(canThrowException).getOrElse(throw new Exception("Couldn't do it"))
这样做会删除我的能力链,是由canThrowException
抛出的异常,但看起来更漂亮。
你知道一种既有优雅结构又有异常链接的方法吗?
您可以添加扩展方法; 'def throw():成功[A]','def getOrThrow:A','def throw(f:Throwable => Nothing):成功[A]','def getOrThrow(f:Throwable => Nothing):A '例如。 –