例外是在运行时在程序中发生并阻碍程序正常执行的情况或事件。这些可以在程序本身中处理。
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块捕获。