- Scala 教程
- Scala - 首页
- Scala - 概述
- Scala - 特性
- Scala - 环境设置
- Scala - 构建工具 (SBT)
- Scala - 基本语法
- 数据类型和变量
- Scala - 数据类型
- Scala - 变量
- Scala - 字符串
- Scala - 数组
- Scala 运算符
- Scala - 运算符
- Scala - 算术运算符
- Scala - 关系运算符
- Scala - 逻辑运算符
- Scala - 位运算符
- Scala - 赋值运算符
- Scala 条件语句
- Scala - IF ELSE
- Scala 循环语句
- Scala - 循环语句
- Scala - while 循环
- Scala - do-while 循环
- Scala - for 循环
- Scala - break 语句
- Scala 类和对象
- Scala - 类和对象
- Scala - 访问修饰符
- Scala 方法和函数
- Scala - 函数
- Scala - 按名称调用的函数
- Scala - 带命名参数的函数
- Scala - 带可变参数的函数
- Scala - 递归函数
- Scala - 默认参数值
- Scala - 高阶函数
- Scala - 嵌套函数
- Scala - 匿名函数
- 部分应用函数
- Scala - Currying 函数
- Scala 集合
- Scala - 集合
- Scala - 列表
- Scala - 集合
- Scala - 映射
- Scala - 元组
- Scala - 迭代器
- Scala - Options
- Scala 模式匹配
- Scala - 模式匹配
- Scala - 异常处理
- Scala - 提取器
- Scala - 正则表达式
- Scala 文件I/O
- Scala - 文件I/O
- Scala 高级概念
- Scala - 闭包
- Scala - 特质
- Scala 有用资源
- Scala - 快速指南
- Scala - 在线编译器
- Scala - 有用资源
- Scala - 讨论
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") } } } }
将上述程序保存为 **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...
广告