这篇“Scala异常处理方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Scala异常处理方法是什么”文章吧。

Scala的异常的工作原理类似于Java之类的许多其他语言的异常。代替以常规方式返回值,方法可以通过引发异常来终止。但是,Scala实际上没有检查过的异常。当您想处理异常时,可以像在Java中一样使用try {…} catch {…}块,只是catch块使用匹配来识别和处理异常。

Scala 的异常处理和其它语言比如 Java 类似。 Scala 的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。

抛出异常

Scala 抛出异常的方法和 Java一样,使用 throw 方法,例如,抛出一个新的参数异常:

thrownewIllegalArgumentException捕获异常

异常捕捉的机制与其他语言中一样,如果有异常发生,catch字句是按次序捕捉的。因此,在catch字句中,越具体的异常越要靠前,越普遍的异常越靠后。 如果抛出的异常不在catch字句中,该异常则无法处理,会被升级到调用者处。

捕捉异常的catch子句,语法与其他语言中不太一样。在Scala里,借用了模式匹配的思想来做异常的匹配,因此,在catch的代码里,是一系列case字句,如下例所示:

importjava.io.FileReaderimportjava.io.FileNotFoundExceptionimportjava.io.IOExceptionobjectTest{defmain(args:Array[String]){try{valf=newFileReader("input.txt")}catch{caseex:FileNotFoundException=>{println("Missingfileexception")}caseex:IOException=>{println("IOException")}}}}

执行以上代码,输出结果为:

$scalacTest.scala$scalaTestMissingfileexception

catch字句里的内容跟match里的case是完全一样的。由于异常捕捉是按次序,如果最普遍的异常,Throwable,写在最前面,则在它后面的case都捕捉不到,因此需要将它写在最后面。

finally 语句

finally 语句用于执行不管是正常处理还是有异常发生时都需要执行的步骤,实例如下:

importjava.io.FileReaderimportjava.io.FileNotFoundExceptionimportjava.io.IOExceptionobjectTest{defmain(args:Array[String]){try{valf=newFileReader("input.txt")}catch{caseex:FileNotFoundException=>{println("Missingfileexception")}caseex:IOException=>{println("IOException")}}finally{println("Exitingfinally...")}}}

执行以上代码,输出结果为:

$scalacTest.scala$scalaTestMissingfileexceptionExitingfinally...

以上就是关于“Scala异常处理方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。