Scala异常处理
Scala的异常的工作像许多其他语言,如Java异常。而不是正常方式返回的值,方法可以通过抛出一个异常终止。然而,Scala实际上并没有检查异常。
当要处理异常,那么可使用try{...}catch{...} 块,就像在Java中除了catch块采用匹配识别和处理异常。
抛出异常:
抛出一个异常看起来类似于Java。创建一个异常对象,然后使用throw关键字把它抛出:
throw new IllegalArgumentException
捕获异常:
Scala中try/catch在一个单独的块捕捉任何异常,然后使用case块进行模式匹配,如下图所示:
import java.io.FileReader import java.io.FileNotFoundException import java.io.IOException object Test { def main(args: Array[String]) { try { val f = new FileReader("input.txt") } catch { case ex: FileNotFoundException =>{ println("Missing file exception") } case ex: IOException => { println("IO Exception") } } } }
当上述代码被编译和执行时,它产生了以下结果:
C:/>scalac Test.scala C:/>scala Test Missing file exception C:/>
这种try-catch表达的行为在其他语言处理异常是一样的。body是执行体,如果它抛出一个异常,每个catch子句都依次尝试捕获。
finally子句:
如果想知道引起一些代码是如何表达的终止执行,可以用一个finally子句包住一个表达式,finally块什么时候都会执行。
import java.io.FileReader import java.io.FileNotFoundException import java.io.IOException object Test { def main(args: Array[String]) { try { val f = new FileReader("input.txt") } catch { case ex: FileNotFoundException => { println("Missing file exception") } case ex: IOException => { println("IO Exception") } } finally { println("Exiting finally...") } } }
当上述代码被编译和执行时,它产生了以下结果:
C:/>scalac Test.scala C:/>scala Test Missing file exception Exiting finally... C:/>
本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:Scala异常处理
本文地址:http://www.codeinn.net/scala/1225.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:Scala异常处理
本文地址:http://www.codeinn.net/scala/1225.html