美文网首页
Scala编程基础27:Scala异常处理

Scala编程基础27:Scala异常处理

作者: 金字塔下的小蜗牛 | 来源:发表于2020-04-09 08:14 被阅读0次

Scala的异常处理和Java的类似。Scala的方法可以通过抛出异常的方式来终止相关代码的运行,不必通过返回值。

1.抛出异常throw

Scala使用关键字throw来抛出一个异常对象,如抛出一个参数异常:

throw new IllegalArgumentException

2.捕获异常catch

Scala使用关键字catch捕获异常,如果有异常发生,catch子句按照次序捕获异常。因此在catch子句中,越具体的异常越靠前,越普遍的异常越靠后。如果抛出的异常不在catch子句中,则该异常无法处理,这时会把异常抛到上层调用者处理。

在Scala里,借用了模式匹配的思想来做异常的匹配,因此在catch子句中,是一系列case子句:

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
object Test1 {
    def main(args:Array[String]){
        try{
            val fin = new FileReader("input.txt");
        }catch{
            case ex: FileNotFoundException => {
                println("Missing file exception");
            }
            case ex: IOException => {
                println("IO Exception");
            }
        }
    }
}

编译并执行以上代码,输出结果如下:

E:\Test>scalac Test1.scala
E:\Test>scala Test1
Missing file exception

3.finally语句

不管有没有异常发生都要执行的语句,放在finally语句中:

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
object Test2 {
    def main(args:Array[String]){
        try{
            val fin = new FileReader("input.txt");
        }catch{
            case ex: FileNotFoundException => {
                println("Missing file exception");
            }
            case ex: IOException => {
                println("IO Exception");
            }
        }finally{
            println("Exiting finally ...");
        }
    }
}

编译并执行以上代码,输出结果如下:

E:\Test>scalac Test2.scala
E:\Test>scala Test2
Missing file exception
Exiting finally ...

相关文章

网友评论

      本文标题:Scala编程基础27:Scala异常处理

      本文链接:https://www.haomeiwen.com/subject/afekdhtx.html