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
@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。