Scala的异常与Java之类的许多其他语言中的异常一样工作,方法可以通过引发异常来终止,但是,Scala实际上没有检查过的异常。
当您要处理异常时,可以像在Java中一样使用try {...} catch {...}块,只是catch块使用匹配来识别和处理异常。
抛出异常
引发异常看起来与Java中相同,创建一个异常对象 ,然后使用 throw 关键字将其抛出,如下所示。
throw new IllegalArgumentException
捕捉异常
Scala允许您在单个块中 try/catch 任何异常,然后使用 case 块对其进行模式匹配。
import java.io.FileReader import java.io.FileNotFoundException import java.io.IOException object Demo { 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") } } } }
将上述程序保存在 Demo.scala 中。以下命令用于编译和执行该程序。
\>scalac Demo.scala \>scala Demo
Missing file exception
try-catch 表达式的行为与其他语言中的行为相同,主体将被执行,如果引发异常,则会依次尝试每个 catch 子句。
Finally
如果要使某些代码无论表达式如何终止执行,都可以用 finally 子句包装表达式。请尝试以下程序。
import java.io.FileReader import java.io.FileNotFoundException import java.io.IOException object Demo { 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...") } } }
将上述程序保存在 Demo.scala 中。以下命令用于编译和执行该程序。
\>scalac Demo.scala \>scala Demo
Missing file exception Exiting finally...
参考链接
https://www.learnfk.com/scala/scala-exception-handling.html
标签:教程,java,scala,Demo,Scala,无涯,catch,import,异常 From: https://blog.51cto.com/u_14033984/9436834