// =============Scala 异常处理============
// ===========抛出异常=========
// Scala 抛出异常的方法和 Java一样,使用 throw 方法
// ------实例1:抛出异常
throw new IllegalArgumentException
// ===========捕获异常==========
// 异常捕捉的机制与其他语言中一样,如果有异常发生,catch字句是按次序捕捉的。
// 在catch字句中,越具体的异常越要靠前,越普遍的异常越靠后;
// 由于异常捕捉是按次序,如果最普遍的异常,Throwable,写在最前面,则在它后面的case都捕捉不到,因此需要将它写在最后面;
// 如果抛出的异常不在catch字句中,该异常则无法处理,会被升级到调用者处。
// 在Scala里,借用了模式匹配的思想来做异常的匹配,因此,在catch的代码里,是一系列case字句;
// catch字句里的内容跟match里的case是完全一样的。
// ------实例2:模式匹配的异常捕获
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 =>{ // 异常捕获1
println("Missing file exception")
}
case ex: IOException => { // 异常捕获2
println("IO Exception")
}
}
}
}
// ============ finally 语句===========
// finally 语句用于执行不管是正常处理还是有异常发生时都需要执行的步骤
// -------- 实例3:
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...")
}
}
}
Scala学习之路之篇十(scala异常处理)
猜你喜欢
转载自blog.csdn.net/weixin_40873462/article/details/89678262
今日推荐
周排行