【scala】异常处理

Scala 的异常处理和其它语言比如 Java 类似。

抛出异常

Scala 抛出异常的方法和 Java一样,使用 throw 方法

throw new IllegalArgumentException

捕获异常

Scala中捕获异常的机制跟Java类似,通过try-catch来完成异常的捕获,catch捕获try块中的异常。

需要注意的是,如果有异常发生,catch字句是按次序捕捉的。越具体的异常越要靠前,越普遍的异常越靠后。

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")
         }
      }
   }
}

我们注意到,case ex:Exception => ... 这种格式是不是有点像模式匹配中case的格式。

其实捕获异常就是借用了模式匹配的思想来做异常的匹配。

catch字句里的内容跟match里的case是完全一样的。

finally语句

同Java,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...")
      }
   }
}

  

猜你喜欢

转载自www.cnblogs.com/zzhangyuhang/p/8946648.html
今日推荐