Scala的异常处理和其它语言比如Java类似,一个方法可以通过抛出异常的方法而不返回值的方式终止相关代码的运行。调用函数可以捕获这个异常作出相应的处理或者直接退出,在这种情况下,异常会传递给调用函数的调用者,依次向上传递,直到有方法处理这个异常。
Scala中的所有异常都是未检查的;没有检查异常的概念。Scala在选择是否捕获异常方面提供了很大的灵活性。
抛出异常在Scala和Java中是一样的。
import scala.io.Source
import java.io.FileNotFoundException
try {
val line = Source.fromFile("./wc.txt").mkString
val ret = 1 / 0
println(line)
} catch {
case fNFE:FileNotFoundException => {
println("FileNotFoundException:文件找不到了,传的路径有误。。。")
}
case e:Exception => {
println("Exception: " + e.getMessage)
}
case _ : Throwable => {
println("default处理方式")
}
} finally {
println("this is 必须要执行的语句")
}
Scala中的try/catch结构与Java不同,因为Scala中的try/catch是一个表达式,它会产生一个值,而且Scala中的异常可以在catch块中进行模式匹配,而不是为每个不同的异常提供单独的catch子句。因为Scala中的try/catch是一个表达式,所以如果调用失败,可以将调用包装在try/catch中,并赋值一个默认值。
下面的代码在try/catch中包装调用并在调用失败时分配默认值:
try{
Integer.parseInt("dog")
}catch{
case_ => 0
}
© 版权声明
本站网络名称:
知趣
本站永久网址:
https://www.qubaa.top
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长删除处理。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容