Scala try表達(dá)式

2022-05-13 14:39 更新

Scala中的異常處理以不同的方式實(shí)現(xiàn),但它的行為與Java完全相同,并與現(xiàn)有的Java庫無縫協(xié)作。

Scala中的所有異常都未選中;沒有檢查異常的概念。

拋出異常在Scala和Java中是一樣的。

throw new Exception("some exception...")

try/finally結(jié)構(gòu)在Scala和Java中也是一樣的,如下面的代碼所示。

try {
    throw newException("some exception...")
} finally{
    println("This will always be printed")
}

try/catch在Scala是一個(gè)表達(dá)式,導(dǎo)致一個(gè)值。

Scala中的異??梢栽赾atch塊中進(jìn)行模式匹配,而不是為每個(gè)不同的異常提供單獨(dú)的catch子句。

因?yàn)镾cala中的try/catch是一個(gè)表達(dá)式,所以可以在try / catch中包裝調(diào)用,并在調(diào)用失敗時(shí)分配默認(rèn)值。

以下代碼顯示了具有模式匹配catch塊的基本try/catch表達(dá)式。

try {
    file.write(stuff)
} catch{
    case e:java.io.IOException => // handle IO Exception
    case n:NullPointerException => // handle null pointer
}

例子

以下代碼顯示了通過調(diào)用Integer.parseIntand在try/catch中包裝調(diào)用的示例,如果調(diào)用失敗,則分配默認(rèn)值。

try{
   Integer.parseInt("dog")
}catch{
   case_ => 0
}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)