在Scala中,是否存在将异常转换为Options的预先存在的库函数?
发布时间:2020-12-16 09:35:26 所属栏目:安全 来源:网络整理
导读:这基本上是为了包装java工厂方法,如果不能根据输入创建项目,则抛出异常。我正在寻找基础库中的东西,如: def exceptionToOption[A](f: = A):Option[A] ={ try{ Some(f)} catch{ case e:Exception = None} } 用法: val id:Option[UUID] = exceptionToOpti
这基本上是为了包装java工厂方法,如果不能根据输入创建项目,则抛出异常。我正在寻找基础库中的东西,如:
def exceptionToOption[A](f: => A):Option[A] ={ try{ Some(f)} catch{ case e:Exception => None} } 用法: val id:Option[UUID] = exceptionToOption(UUID.fromString("this will produce None")) 我知道我可以自己写,但我想检查我不是重新发明的轮子。 解决方法
使用
scala.util.control.Exception:
import scala.util.control.Exception._ allCatch opt f 你可以使它更复杂。例如,仅捕获算术异常并检索异常: scala> catching(classOf[ArithmeticException]) either (2 / 0) res5: Either[Throwable,Int] = Left(java.lang.ArithmeticException: / by zero) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |