Scala Try/Future,在失败时包装异常

标签 scala try-catch functor

假设我有一个方法 def doSomething: String这可以引发 DoSomethingException如果出现问题。

如果我写 Try(doSomething) ,有没有一种简单的方法来映射异常而不恢复它?

基本上,我希望失败成为BusinessExceptionDoSomethingException 引起的.

我知道执行此操作的代码非常简单,但是没有任何内置运算符可以这样做吗?这似乎是一个非常常见的操作,但我在 API 中找不到任何内容。

最佳答案

随着恢复:

val c = scala.util.Try(doSomething).recover { 
    case e: DoSomethingException => throw new BusinessException
}

关于Scala Try/Future,在失败时包装异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570228/

相关文章:

java - 斯卡拉/Play : parse JSON into Map instead of JsObject

java - scala REPL 在 Vista 上速度很慢

scala - 如何展平数组[Future[Seq[T]]]

scala - 除最后一个项目外,所有内容均来自Scala迭代器(也称为Iterator.init)

c# - 用于检查数组边界的 If 语句与 Try/Catch 的比较

excel - 即使没有错误, "Line3:"的代码仍然会在 On Error GoTo Line3 上运行

java - java try catch block 的特殊语法

c++ - 不同功能的容器?

C++ store functor 在类中

模块和记录字段