Scala-7.控制结构-try/catch/finally

2019-07-10 17:01:07 浏览数 (1)

try/catch 用于捕获一个或者多个异常 和Java语法类似,不同之处在于catch代码块中使用match表达式的方法

代码语言:javascript复制
val s = "Foo"
try{
  val i = s.toInt
} catch {
  case e : Exception => e.printStackTrace
}
  • Java中可以从catch子句中抛出异常,但是Scala没有受检异常,因此不需要指定抛出异常的方法。
  • 需要声明方法抛出的异常,或者需要和Java交互,在定义方法的时候添加@throws
代码语言:javascript复制
  @throws(classOf[NumberFormatException])
  def toInt(s:String):Option[Int] =
    try{
      Some(s.toInt)
    } catch {
      case e:NumberFormatException => throw e
    }
finally

那么,类似Java中的finally语句。 scala中,一般在try/catch块之前声明字段为Option,然后在try子句中创建一个Some对象进行赋值。

可以创建自定义控制结构

Scala语言通过Scala类库去实现功能而不是创建关键字,例如break和continue。

0 人点赞