开发手册 欢迎您!
软件开发者资料库

Scala - 异常处理

Scala异常处理 - 从简单和简单的步骤学习Scala,从基本到高级概念,包括Scala语法面向对象语言,特征,方法,模式匹配,元组,注释,指示符,概述,环境设置,基本语法,数据类型,变量,类和对象,访问修饰符,运算符,IF ELSE,循环语句,函数,闭包,字符串,数组,集合,正则表达式,异常处理,提取器,文件I / O.

Scala的异常与Java等许多其他语言中的异常一样.方法可以通过抛出异常来终止,而不是以正常方式返回值.但是,Scala实际上并没有检查异常.

当你想要处理异常时,你可以像在Java中一样使用try {...} catch {...}块除了catch块使用匹配来识别和处理异常.

抛出异常

抛出异常与Java中的异常相同.您创建一个异常对象,然后使用 throw 关键字抛出它,如下所示.

throw new IllegalArgumentException

捕获异常

Scala允许您在单个块中尝试/捕获任何异常然后使用 case 块对它进行模式匹配.尝试以下示例程序来处理异常.

示例

import java.io.FileReaderimport java.io.FileNotFoundExceptionimport java.io.IOExceptionobject 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.FileReaderimport java.io.FileNotFoundExceptionimport java.io.IOExceptionobject 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 exceptionExiting finally...