scala中的异常处理

简介: 执行程序,可以看到scala抛出了异常,而且没有打印出来"你好"。说明程序出现错误后就终止了。那怎么解决该问题呢?

1 异常场景



来看看下面一段代码


```

 def main(args: Array[String]): Unit = {

  val i = 10 / 0

 

   println("你好!")

 }


Exception in thread "main" java.lang.ArithmeticException: / by zero

at ForDemo$.main(ForDemo.scala:3)

at ForDemo.main(ForDemo.scala)

```


执行程序,可以看到scala抛出了异常,而且没有打印出来"你好"。说明程序出现错误后就终止了。那怎么解决该问题呢?



2 捕获异常

在scala中,可以使用异常处理来解决这个问题。在Scala里,借用了模式匹配的思想来做异常的匹配以下为scala中try...catch异常处理的语法格式:

```

try {

   // 代码

}

catch {

   case ex:异常类型1 => // 代码

   case ex:异常类型2 => // 代码

}

finally {

   // 代码

}


```


try中的代码是我们编写的业务处理代码在catch中表示当出现某个异常时,需要执行的代码在finally中,是不管是否出现异常都会执行的代码


示例:

```

try {

   val i = 10 / 0


} catch {

   case ex: Exception => println(ex.getMessage)

} finally {

   println("我始终都会执行!")

}

```


3 抛出异常


我们也可以在一个方法中,抛出异常。语法格式和Java类似,使用throw new Exception...

示例

```

 def main(args: Array[String]): Unit = {

   throw new Exception("这是一个异常")

 }


Exception in thread "main" java.lang.Exception: 这是一个异常

at ForDemo$.main(ForDemo.scala:3)

at ForDemo.main(ForDemo.scala)

```

目录
相关文章
|
2月前
|
Java Scala
Scala 异常处理
Scala 异常处理
37 1
|
8月前
|
Scala
Scala中的异常处理和模式匹配
Scala中的异常处理和模式匹配
66 1
|
大数据 Scala 开发者
大数据开发基础的编程语言的Scala的异常处理
Scala是一种支持异常处理的编程语言,它提供了try-catch-finally语句和throw表达式来捕获和处理程序中的异常。本文将介绍Scala中的异常处理机制,帮助开发者更好地理解和应用这门语言。
98 0
|
分布式计算 Java Scala
一天学完spark的Scala基础语法教程十二、异常处理(idea版本)
一天学完spark的Scala基础语法教程十二、异常处理(idea版本)
207 0
一天学完spark的Scala基础语法教程十二、异常处理(idea版本)
|
Scala C# Java
scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
package yjmyzz import scala.io.StdIn object ScalaApp { def main(args: Array[String]) { println("please input something,press Enter t...
860 0
|
3月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
86 5
|
3月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
64 3
|
3月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
59 0
|
3月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
117 0
|
3月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
59 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方