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...

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术与商业案例解读 -〔徐飞〕

邱岳的产品实战 -〔邱岳〕

罗剑锋的C++实战笔记 -〔罗剑锋〕

编译原理实战课 -〔宫文学〕

WebAssembly入门课 -〔于航〕

张汉东的Rust实战课 -〔张汉东〕

深入C语言和程序运行原理 -〔于航〕

去无方向的信 -〔小麥〕

快手 · 音视频技术入门课 -〔刘歧〕

好记忆不如烂笔头。留下您的足迹吧 :)