鍍金池/ 教程/ Scala/ Scala異常處理
Scala方法重載
Scala模式匹配
Scala throw關(guān)鍵字
Scala提取器
Scala概述
Scala throws關(guān)鍵字
Scala finally塊
Scala正則表達(dá)式
Scala循環(huán)語句
Scala多線程
Scala函數(shù)
Scala final關(guān)鍵字
Scala方法覆蓋
Scala字符串
Scala線程實現(xiàn)
Scala異常處理
Scala類和對象
Scala數(shù)據(jù)類型
Scala單例和伴生對象
Scala構(gòu)造函數(shù)
Scala教程
Scala Case類和對象
Scala繼承
Scala開發(fā)環(huán)境安裝配置
Scala運算符
Scala文件I/O
Scala線程方法
Scala變量
Scala try-catch語句
Scala基礎(chǔ)語法
Scala集合
Scala數(shù)組
Scala閉包
Scala訪問修辭符
Scala this關(guān)鍵字

Scala異常處理

Scala的異常處理類似許多其他語言(如Java)。它不是以正常方式返回值,方法可以通過拋出異常來終止。 但是,Scala實際上并沒有檢查異常。

當(dāng)您想要處理異常時,要像Java一樣使用try {...} catch {...}塊,除了catch塊使用匹配來識別和處理異常。

引發(fā)異常

拋出異??雌饋砼cJava中的異常一樣。創(chuàng)建一個異常對象,然后使用throw關(guān)鍵字將其拋出如下。

throw new IllegalArgumentException

捕獲異常

Scala允許在單個塊中try/catch任何異常,然后使用case塊對其進行模式匹配。嘗試以下示例程序來處理異常。

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException

object Demo {
   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")
         }
      }
   }
}

將上述程序保存在源文件:Demo.scala中,使用以下命令編譯和執(zhí)行此程序。

D:\>scalac Demo.scala
D:\>scala Demo
Missing file exception

try-catch表達(dá)式的行為與其他具有異常的語言相同。它在主體中執(zhí)行,如果它拋出一個異常,則會依次嘗試每個catch子句。

finally子句

如果希望引發(fā)一些代碼執(zhí)行,無論表達(dá)式如何終止,都會執(zhí)行在finally子句包裝表達(dá)式。嘗試以下程序。

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException

object Demo {
   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...")
      }
   }
}

將上述程序保存在源文件:Demo.scala中,使用以下命令編譯和執(zhí)行此程序。

D:\>scalac Demo.scala
D:\>scala Demo
Missing file exception
Exiting finally...

上一篇:Scala概述下一篇:Scala繼承