Scala 异常处理
-
异常处理
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") } } } }
输出::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...") } } }
输出::Missing file exception Exiting finally...