【scala】异常处理
Scala 的异常处理和其它语言比如 Java 类似。
抛出异常
Scala 抛出异常的方法和 Java一样,使用 throw 方法
throw new IllegalArgumentException
捕获异常
Scala中捕获异常的机制跟Java类似,通过try-catch来完成异常的捕获,catch捕获try块中的异常。
需要注意的是,如果有异常发生,catch字句是按次序捕捉的。越具体的异常越要靠前,越普遍的异常越靠后。
import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException object Test {
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")
}
}
}
}
我们注意到,case ex:Exception => ... 这种格式是不是有点像模式匹配中case的格式。
其实捕获异常就是借用了模式匹配的思想来做异常的匹配。
catch字句里的内容跟match里的case是完全一样的。
finally语句
同Java,finally 语句用于执行不管是正常处理还是有异常发生时都需要执行的步骤。
import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException object Test {
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...")
}
}
}
【scala】异常处理的更多相关文章
- Scala 异常处理
Scala 异常处理: parseURL("www.baidu.com") 会返回一个 Success[URL] ,包含了解析后的网址, 反之 parseULR("www ...
- scala 异常处理机制
有经验的码农都知道,程序开发的差不多的时候,为了提高程序的稳健性,是一定要加上异常处理机制的 在scala中,用try/catch/finally实现该功能,这个在我的博客,数字转汉字小工具中有体现, ...
- Spark记录-Scala异常处理与文件I/O
Scala的异常处理类似许多其他语言(如Java).它不是以正常方式返回值,方法可以通过抛出异常来终止. 但是,Scala实际上并没有检查异常. 当您想要处理异常时,要像Java一样使用try {.. ...
- 解决Scala异常处理java.lang.OutOfMemoryError: Java heap space error
需求:百万.千万.4千万级日志对设备进行除重环境:设备内存64G,scala单机版运行shell文件日志:20G 48000000.log4.0G 10000000.log396M 1000000.l ...
- 【scala】 scala 条件控制 和异常处理(二)
1.scala 变量定义 ,var val 区别. var 定义可变变量 val 定义不可变变量,scala 推荐使用.相当于Java的final 变量. scala中包含的基本数据类型详情如下表所示 ...
- 一文学会Scala
整体介绍 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. 联邦理工学院洛桑(EPFL)的Martin Odersky于2001 ...
- 5. Scala函数式编程的基础
5.1 函数式编程内容及介绍顺序说明 5.1.1 函数式编程内容 -函数式编程基础 函数定义/声明 函数运行机制 递归(难点,[最短路径,邮差问题,迷宫问题,回溯]) 过程 惰性函数和异常 -函数式编 ...
- 一篇入门 -- Scala
整体介绍 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. 联邦理工学院洛桑(EPFL)的Martin Odersky于2001 ...
- Scala入门教程---《chang哥教你一天搞定Scala》
<chang哥教你一天搞定Scala> /** * <chang哥教你一天搞定Scala> * scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性. * ...
- 【大数据】Scala学习笔记
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java 以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...
随机推荐
- hadoop编程:分析CSDN注冊邮箱分布情况
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jdh99/article/details/37565825 hadoop编程:分析CSDN注冊邮箱分 ...
- ViewPager学习及使用(一)
一:基础篇 1.ViewPager的简介和作用ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view1)ViewPager类直接继承了ViewGroup类,所有它 ...
- Oracle 11g数据库详解
常见异常: ORA-14025:不能为实体化视图或实体化视图日志指定PARTITION ORA-14026:PARTITION和CLUSTER子句互相排斥 ORA-14027:仅可以指定一个PARTI ...
- 一次rna-seq的过程-知乎live转
数据分析流程 来自知乎孟浩巍的“快速入门生物信息学的”Live,超棒的~ 1.数据质控 首先是质控部分,使用fastqc进行对结果分析. 对于Illumia二代测序的结果质控包括两个方面,去掉测序质量 ...
- mapreduce中获取输入文件的路径
InputSplit inputSplit = context.getInputSplit(); String fileName = ((FileSplit) inputSplit).getPath( ...
- go——函数
1.定义 函数是结构化编程的最小单元模式.它将复杂的算法过程分解为若干个较小任务,隐藏相关细节,使程序结构更加清晰,易于维护.函数被设计成相对独立,通过接收输入参数完成一段算法指令,输出或存储相关结果 ...
- go——切片(二)
切片是一种数据结构,这种数据结构便于使用和管理数据集合. 切片是围绕动态数组的概念构建的,可以按需自动增长和缩小. 切片的动态增长是通过内置函数append来实现的.这个函数可以快速且高效地增长切片. ...
- 转:Oracle中的日期和字符串互相转换
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显 ...
- python3 requests模块
一.Requests用法: 1.发送请求: 1).请求类型:req_obj = requests.get("https://www.baidu.com")requests支持多种请 ...
- case的嵌套使用
case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ;; esac case语句结构特点如下: 1. ...