异常
- 我们把可能出现异常的代码封装到
try
代码块中,之后使用catch
处理程序来捕获异常。 如果发生任何异常,catch
处理程序将处理它,程序不会因此终止 Scala
的异常工作机制与Java
一致,但是Scala
没有 checked
(编译器)异常。即Scala的异常都是在运行时捕获的处理的`- 异常捕捉的机制与其他语言一致,如果异常发生,
catch
子句是有序捕获的。因此,在catch
子句中,越具体的异常越靠前,越广泛的异常越靠后 finally
子句用于执行不管是正常处理还是有异常发生时,都需要执行的步骤,常用于对象清理、资源释放等- 用
throw
关键字,抛出一个异常对象。所有异常都是Throwable
的子类 throw
表达式是有类型的,就是Nothing
,因为Nothing
是所有类型的子类,所以throw
表达式可以在任何地方使用
def main(args: Array[String]): Unit = {
try {
val n = 10 / 0
} catch {
case e: ArithmeticException => {
println("算计异常")
}
case e: Exception => {
println("其他异常")
println("其他异常")
}
} finally {
println("finally 代码块")
}
}