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 中。以下命令用于编译和执行该程序。

链接:https://www.learnfk.comhttps://www.learnfk.com/scala/scala-exception-handling.html

来源:LearnFk无涯教程网

\>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 中。以下命令用于编译和执行该程序。

链接:https://www.learnfk.comhttps://www.learnfk.com/scala/scala-exception-handling.html

来源:LearnFk无涯教程网

\>scalac Demo.scala
\>scala Demo
Missing file exception
Exiting finally...

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

技术教程推荐

算法面试通关40讲 -〔覃超〕

MySQL实战45讲 -〔林晓斌〕

玩转Git三剑客 -〔苏玲〕

许式伟的架构课 -〔许式伟〕

透视HTTP协议 -〔罗剑锋(Chrono)〕

ZooKeeper实战与源码剖析 -〔么敬国〕

Java业务开发常见错误100例 -〔朱晔〕

李智慧 · 高并发架构实战课 -〔李智慧〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

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