亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scala異常處理方法是什么

發布時間:2022-02-18 16:04:45 來源:億速云 閱讀:140 作者:iii 欄目:開發技術

這篇“Scala異常處理方法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Scala異常處理方法是什么”文章吧。

Scala的異常的工作原理類似于Java之類的許多其他語言的異常。代替以常規方式返回值,方法可以通過引發異常來終止。但是,Scala實際上沒有檢查過的異常。當您想處理異常時,可以像在Java中一樣使用try {…} catch {…}塊,只是catch塊使用匹配來識別和處理異常。

Scala異常處理方法是什么

Scala 的異常處理和其它語言比如 Java 類似。 Scala 的方法可以通過拋出異常的方法的方式來終止相關代碼的運行,不必通過返回值。

拋出異常

Scala 拋出異常的方法和 Java一樣,使用 throw 方法,例如,拋出一個新的參數異常:

throw new IllegalArgumentException

捕獲異常

異常捕捉的機制與其他語言中一樣,如果有異常發生,catch字句是按次序捕捉的。因此,在catch字句中,越具體的異常越要靠前,越普遍的異常越靠后。 如果拋出的異常不在catch字句中,該異常則無法處理,會被升級到調用者處。

捕捉異常的catch子句,語法與其他語言中不太一樣。在Scala里,借用了模式匹配的思想來做異常的匹配,因此,在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")
        }
     }
  }
}

執行以上代碼,輸出結果為:

$ scalac Test.scala
$ scala Test
Missing file exception

catch字句里的內容跟match里的case是完全一樣的。由于異常捕捉是按次序,如果最普遍的異常,Throwable,寫在最前面,則在它后面的case都捕捉不到,因此需要將它寫在最后面。

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

執行以上代碼,輸出結果為:

$ scalac Test.scala
$ scala Test
Missing file exception
Exiting finally...

以上就是關于“Scala異常處理方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扎兰屯市| 镇平县| 冷水江市| 祁阳县| 新竹县| 宁阳县| 五华县| 渭源县| 阜平县| 平谷区| 金寨县| 即墨市| 鸡西市| 晋城| 乌拉特前旗| 库伦旗| 花莲县| 仁寿县| 商丘市| 凉山| 枝江市| 徐水县| 汝南县| 庄河市| 潮安县| 凤山市| 泰州市| 阳东县| 疏勒县| 黄浦区| 河池市| 娱乐| 双鸭山市| 炎陵县| 白朗县| 哈密市| 科技| 成安县| 阳城县| 皋兰县| 杨浦区|