Scala 斯卡拉:除了在斯卡拉之外,还有别的尝试吗?

Scala 斯卡拉:除了在斯卡拉之外,还有别的尝试吗?,scala,exception,Scala,Exception,在Python中,我可以执行以下操作: try{ something } except{ whoops that didn't work, do this instead } 我想知道是否有一种方法可以在Scala中做同样的事情。我看到了很多捕获异常的方法,但是我没有看到忽略异常并做其他事情的方法 编辑: 下面是我在Scala中尝试的: try{ something } catch{ case ioe: Exception => something else } 但它似乎不喜

在Python中,我可以执行以下操作:

try{
 something
}
except{
whoops that didn't work, do this instead 
}
我想知道是否有一种方法可以在Scala中做同样的事情。我看到了很多捕获异常的方法,但是我没有看到忽略异常并做其他事情的方法

编辑:

下面是我在Scala中尝试的:

try{ 
 something
}
catch{
 case ioe: Exception => something else
}

但它似乎不喜欢……

我看不出scala的try catch不符合您的需求的任何原因:

scala> val foo = 0
foo: Int = 0

scala> val bar = try { 1 / foo } catch { case _: Exception => 1 / (foo + 1) } 
bar: Int = 1

scala.util.Try
做一些免费广告,它有额外的功能,其中最重要的一点是scalac不会因为一个包罗万象的东西而骚扰你:

scala> try { ??? } catch { case _ => }
<console>:11: warning: This catches all Throwables. If this is really intended, use `case _ : Throwable` to clear this warning.
              try { ??? } catch { case _ => }
                                       ^

scala> import scala.util._
import scala.util._

scala> Try { ??? } map (_ => 1) recover { case _ => 0 } foreach (v => Console println s"Done with $v")
Done with 0
scala>试试{???}catch{case}
:11:警告:这将捕获所有丢弃的内容。如果确实有意这样做,请使用“case\uuux:Throwable”清除此警告。
尝试{???}捕获{case}
^
scala>导入scala.util_
导入scala.util_
scala>Try{???}map(=>1)recover{case}foreach(v=>Console println s“用$v完成”)
用0完成

python的
如何尝试。。。除了
不同于scala的尝试。。。捕获?你想处理所有的异常还是一些特殊情况?哦,我想我知道发生了什么。我用的是一个具体的案例,但你是在概括它。是吗?@Shelby.S是的,我使用的是通用版本,但是特定的case应该可以正常工作,只要它对应于异常:
catch{case}java.lang.arithmetricexception=>…}
,在上面的代码中也应该可以。谢谢!我想这是我的问题。