一天学完spark的Scala基础语法教程十二、异常处理(idea版本)

简介: 一天学完spark的Scala基础语法教程十二、异常处理(idea版本)

创建测试类【day1/demo12.scalc】,类型为【Object】

image.png

image.png

Scala 异常处理

Scala 的异常处理和其它语言比如 Java 类似。

Scala 的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。

抛出异常

Scala 抛出异常的方法和 Java一样,使用 throw 方法,例如,抛出一个新的参数异常:

throw new IllegalArgumentException

捕获异常

异常捕捉的机制与其他语言中一样,如果有异常发生,catch 字句是按次序捕捉的。因此,在 catch 字句中,越具体的异常越要靠前,越普遍的异常越靠后。 如果抛出的异常不在 catch 字句中,该异常则无法处理,会被升级到调用者处。


捕捉异常的 catch 子句,语法与其他语言中不太一样。在 Scala 里,借用了模式匹配的思想来做异常的匹配,因此,在 catch 的代码里,是一系列 case 字句,如下例所示:

package day1
import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
object demo12 {
  def main(args: Array[String]) {
    try {
      val f = new FileReader("input.txt")
    } catch {
      case ex: FileNotFoundException =>{
        println("没有这个文件")
      }
      case ex: IOException => {
        println("IO Exception:IO异常")
      }
    }
  }
}

通过这个案例我们能知道报错的具体异常。



image.png

finally 语句

finally 语句用于执行不管是正常处理还是有异常发生时都需要执行的步骤,实例如下:


package day1
import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
object demo12 {
  def main(args: Array[String]) {
    try {
      val f = new FileReader("input.txt")
    } catch {
      case ex: FileNotFoundException =>{
        println("没有这个文件")
      }
      case ex: IOException => {
        println("IO Exception:IO异常")
      }
    } finally {
      println("无论对错,finally都会执行(前提是不关闭虚拟机。)")
    }
  }
}



image.png

相关文章
|
4月前
|
程序员 Scala
scala的基础语法
scala的基础语法
37 3
|
3月前
|
Linux Scala 开发者
Scala 多版本下载指南
Scala 多版本下载指南
|
3月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
37 0
|
3月前
|
分布式计算 Hadoop Scala
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
35 0
|
4月前
|
SQL 分布式计算 Java
IDEA 打包 Spark 项目 POM 文件依赖
这是一个 Maven POM 示例,用于构建一个使用 Spark 与 Hive 的项目,目标是将数据从 Hive 导入 ClickHouse。POM 文件设置了 Scala 和 Spark 的依赖,包括 `spark-core_2.12`, `spark-sql_2.12`, 和 `spark-hive_2.12`。`maven-assembly-plugin` 插件用于打包,生成包含依赖的和不含依赖的两种 JAR 包。`scope` 说明了依赖的使用范围,如 `compile`(默认),`provided`,`runtime`,`test` 和 `system`。
|
4月前
|
SQL 存储 分布式计算
在scala中使用spark
在scala中使用spark
230 0
|
4月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
307 2
IDEA构建Spark编程环境和用Scala实现PageRank算法
写在前边的话       以前在学习编写mapreduce时,由于没有shell,就是首先在eclipse里配置环境,利用eclipse的强大功能进行编写,调试,编译,最终打包到集群上运行,同样面对Spark的时候,虽然spark提供了强大的shell 脚本能力,但对于定期或者处理时间很长...
1890 0
|
2月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
149 0
|
2月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
66 2