Scala try-catch异常处理用法

本文概述

Scala提供了try and catch块来处理异常。 try块用于封装可疑代码。 catch块用于处理try块中发生的异常。根据需要, 你的程序中可以有任意数量的try catch块。

Scala try-catch示例

在以下程序中, 我们将可疑代码包含在try块内。在try块之后, 我们使用了catch处理程序来捕获异常。如果发生任何异常, 则catch处理程序将对其进行处理, 并且程序不会异常终止。

class ExceptionExample{
    def divide(a:Int, b:Int) = {
        try{
            a/b
        }catch{
            case e: ArithmeticException => println(e)
        }
        println("Rest of the code is executing...")
    }
}
object MainObject{
    def main(args:Array[String]){
        var e = new ExceptionExample()
        e.divide(100, 0)
 
    }
}

输出

java.lang.ArithmeticException: / by zero
Rest of the code is executing...

Scala try-catch示例2

在此示例中, 我们的catch处理程序中有两种情况。第一种情况将仅处理算术类型异常。第二种情况具有Throwable类, 它是异常层次结构中的超类。第二种情况能够处理程序中的任何类型的异常。有时, 当你不知道异常的类型时, 可以使用超类。

class ExceptionExample{
    def divide(a:Int, b:Int) = {
        try{
            a/b
            var arr = Array(1, 2)
            arr(10)
        }catch{
            case e: ArithmeticException => println(e)
            case ex: Throwable =>println("found a unknown exception"+ ex)
        }
        println("Rest of the code is executing...")
    }
}
object MainObject{
    def main(args:Array[String]){
        var e = new ExceptionExample()
        e.divide(100, 10)
 
    }
}

输出

found a unknown exceptionjava.lang.ArrayIndexOutOfBoundsException: 10
Rest of the code is executing...
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?