学习链接:https://www.bilibili.com/video/BV1Xh411S7bP?p=137&spm_id_from=pageDriver


    1. object Test01_Exception {
    2. def main(args: Array[String]): Unit = {
    3. try {
    4. val n = 10 / 0
    5. } catch {
    6. case e: ArithmeticException => {
    7. println("发生算术异常")
    8. }
    9. case e: Exception => {
    10. println("发生一般异常")
    11. }
    12. } finally {
    13. println("处理结束")
    14. }
    15. }
    16. }
    • Scala的没有checked(编译期)异常,异常都是在运行的时候捕获处理
    • 异常捕捉的机制与其他语言中一样,如果有异常发生,catch 子句是按次序捕捉的。

    因此,在 catch 子句中,越具体的异常越要靠前,越普遍的异常越靠后

    • throw关键字,所有异常都是Throwable子类型。throw表达式是有类型的,Nothing