学习链接:https://www.bilibili.com/video/BV1Xh411S7bP?p=137&spm_id_from=pageDriver
object Test01_Exception {
def main(args: Array[String]): Unit = {
try {
val n = 10 / 0
} catch {
case e: ArithmeticException => {
println("发生算术异常")
}
case e: Exception => {
println("发生一般异常")
}
} finally {
println("处理结束")
}
}
}
- Scala的没有checked(编译期)异常,异常都是在运行的时候捕获处理
- 异常捕捉的机制与其他语言中一样,如果有异常发生,catch 子句是按次序捕捉的。
因此,在 catch 子句中,越具体的异常越要靠前,越普遍的异常越靠后
- throw关键字,所有异常都是Throwable子类型。throw表达式是有类型的,Nothing