如何在Scala中引发异常?

Scala的例外

例外是在运行时在程序中发生并阻碍程序正常执行的情况或事件。这些可以在程序本身中处理。

Scala还提供了一些处理异常的方法。

当程序的逻辑可能引发异常时,必须声明该异常可能在代码中发生,并且必须声明一个捕获异常并对其进行处理的方法。

如何抛出异常?

在Scala中,throw关键字用于引发异常并捕获它。Scala中没有已检查的异常,因此您必须将所有异常视为未检查的异常。

另请阅读Java 已检查和未检查的异常

语法:

    throw exception object

要使用throw关键字引发异常,我们需要创建一个将被引发的异常对象。

范例1:

在此示例中,如果速度高于175KmpH,则将引发异常。

object MyObject {
    def checkSpeed(speed : Int ) = {
        if (speed > 175)
            throw new ArithmeticException("The rider is going over the speed Limit!!!")
        else 
            println("The rider is safe under the speed Limit.")
    }
    
    def main(args: Array[String]) {
        checkSpeed(200)
    }
}

输出:

java.lang.ArithmeticException: The rider is going over the speed Limit!!!
...

说明:

在上面的代码中,我们声明了一个函数checkSpeed()来获取自行车的速度,并检查它是否超过了175的速度限制。如果速度超过175,则会引发算术异常,指出“行驶速度超过速度限制!!!” 。否则它会打印“在速度限制下骑手很安全”

范例2:

在此示例中,我们将学习引发异常并使用try-catch块捕获该异常。

object MyObject {
    def isValidUname(name : String ) = {
        throw new Exception("The user name is not valid!")
    }
    
    def main(args: Array[String]) {
        try {
            isValidUname("Shivang10");
        }
        catch{
            case ex : Exception => println("Exception caught : " + ex)
        }
    }
}

输出:

Exception caught : java.lang.Exception: The user name is not valid!

例外:

在上面的代码中,我们有一个函数isValidUname()引发一个异常,该异常被main函数中的catch块捕获。