这基本上是为了包装 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"))
我知道我可以自己写,但我想检查一下我没有重新发明轮子。