您好,登錄后才能下訂單哦!
這篇“Scala異常處理方法是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Scala異常處理方法是什么”文章吧。
Scala的異常的工作原理類似于Java之類的許多其他語言的異常。代替以常規(guī)方式返回值,方法可以通過引發(fā)異常來終止。但是,Scala實(shí)際上沒有檢查過的異常。當(dāng)您想處理異常時(shí),可以像在Java中一樣使用try {…} catch {…}塊,只是catch塊使用匹配來識(shí)別和處理異常。
Scala 的異常處理和其它語言比如 Java 類似。 Scala 的方法可以通過拋出異常的方法的方式來終止相關(guān)代碼的運(yùn)行,不必通過返回值。
Scala 拋出異常的方法和 Java一樣,使用 throw 方法,例如,拋出一個(gè)新的參數(shù)異常:
throw new IllegalArgumentException
異常捕捉的機(jī)制與其他語言中一樣,如果有異常發(fā)生,catch字句是按次序捕捉的。因此,在catch字句中,越具體的異常越要靠前,越普遍的異常越靠后。 如果拋出的異常不在catch字句中,該異常則無法處理,會(huì)被升級(jí)到調(diào)用者處。
捕捉異常的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") } } } }
執(zhí)行以上代碼,輸出結(jié)果為:
$ scalac Test.scala $ scala Test Missing file exception
catch字句里的內(nèi)容跟match里的case是完全一樣的。由于異常捕捉是按次序,如果最普遍的異常,Throwable,寫在最前面,則在它后面的case都捕捉不到,因此需要將它寫在最后面。
finally 語句用于執(zhí)行不管是正常處理還是有異常發(fā)生時(shí)都需要執(zhí)行的步驟,實(shí)例如下:
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...") } } }
執(zhí)行以上代碼,輸出結(jié)果為:
$ scalac Test.scala $ scala Test Missing file exception Exiting finally...
以上就是關(guān)于“Scala異常處理方法是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。