
- Scala 教程
- Scala - 首頁
- Scala - 概述
- Scala - 特性
- Scala - 環境設定
- Scala - 構建工具 (SBT)
- Scala - 基本語法
- 資料型別和變數
- Scala - 資料型別
- Scala - 變數
- Scala - 字串
- Scala - 陣列
- Scala 運算子
- Scala - 運算子
- Scala - 算術運算子
- Scala - 關係運算符
- Scala - 邏輯運算子
- Scala - 位運算子
- Scala - 賦值運算子
- Scala 條件語句
- Scala - IF ELSE
- Scala 迴圈語句
- Scala - 迴圈語句
- Scala - while 迴圈
- Scala - do-while 迴圈
- Scala - for 迴圈
- Scala - break 語句
- Scala 類和物件
- Scala - 類和物件
- Scala - 訪問修飾符
- Scala 方法和函式
- Scala - 函式
- Scala - 按名稱呼叫的函式
- Scala - 帶命名引數的函式
- Scala - 帶可變引數的函式
- Scala - 遞迴函式
- Scala - 預設引數值
- Scala - 高階函式
- Scala - 巢狀函式
- Scala - 匿名函式
- 部分應用函式
- Scala - Currying 函式
- Scala 集合
- Scala - 集合
- Scala - 列表
- Scala - 集合
- Scala - 對映
- Scala - 元組
- Scala - 迭代器
- Scala - Options
- Scala 模式匹配
- Scala - 模式匹配
- Scala - 異常處理
- Scala - 提取器
- Scala - 正則表示式
- Scala 檔案I/O
- Scala - 檔案I/O
- Scala 高階概念
- Scala - 閉包
- Scala - 特質
- Scala 有用資源
- Scala - 快速指南
- Scala - 線上編譯器
- Scala - 有用資源
- Scala - 討論
Scala - 異常處理
Scala 的異常處理機制與 Java 等許多其他語言類似。方法可以透過丟擲異常來終止,而不是以常規方式返回值。但是,Scala 實際上並沒有檢查異常。
當您想要處理異常時,您可以像在 Java 中一樣使用 try{...}catch{...} 塊,只是 catch 塊使用模式匹配來識別和處理異常。
丟擲異常
丟擲異常的方式與 Java 中相同。您建立一個異常物件,然後使用 **throw** 關鍵字丟擲它,如下所示。
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**。使用以下命令編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Missing file exception
此 **try-catch** 表示式的行為與其他具有異常處理機制的語言相同。執行主體,如果丟擲異常,則依次嘗試每個 **catch** 子句。
finally 子句
如果要強制執行某些程式碼,無論表示式如何終止,都可以使用 **finally** 子句包裝表示式。嘗試以下程式。
示例
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**。使用以下命令編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Missing file exception Exiting finally...
廣告