博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark记录-Scala异常处理与文件I/O
阅读量:4659 次
发布时间:2019-06-09

本文共 2468 字,大约阅读时间需要 8 分钟。

Scala的异常处理类似许多其他语言(如Java)。它不是以正常方式返回值,方法可以通过抛出异常来终止。 但是,Scala实际上并没有检查异常。

当您想要处理异常时,要像Java一样使用try {...} catch {...}块,除了catch块使用匹配来识别和处理异常。

引发异常

抛出异常看起来与Java中的异常一样。创建一个异常对象,然后使用throw关键字将其抛出如下。

throw new IllegalArgumentException
Scala

捕获异常

Scala允许在单个块中try/catch任何异常,然后使用case块对其进行模式匹配。尝试以下示例程序来处理异常。

import java.io.FileReaderimport 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") } } } }
Scala

将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。

D:\>scalac Demo.scalaD:\>scala DemoMissing file exception
Shell

try-catch表达式的行为与其他具有异常的语言相同。它在主体中执行,如果它抛出一个异常,则会依次尝试每个catch子句。

finally子句

如果希望引发一些代码执行,无论表达式如何终止,都会执行在finally子句包装表达式。尝试以下程序。

import java.io.FileReaderimport 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...") } } }
Scala

将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。

D:\>scalac Demo.scalaD:\>scala DemoMissing file exceptionExiting finally...

Scala文件I/O

 

Scala可以使用任何Java对象,而java.io.File是Scala编程中可用于读取和写入文件的对象之一。

以下是写入文件的示例程序。

import java.io._object Demo { def main(args: Array[String]) { val writer = new PrintWriter(new File("test.txt" )) writer.write("Hello Scala") writer.close() } }
Scala

将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。

D:\>scalac Demo.scalaD:\>scala DemoHello Scala
Shell

从命令行读一行

有时需要从屏幕上读取用户输入,然后继续进行进一步的处理。 以下示例程序显示如何从命令行读取输入。

object Demo {   def main(args: Array[String]) { print("Please enter your input : " ) val line = Console.readLine println("Thanks, you just typed: " + line) } }
Scala

将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。

D:\>scalac Demo.scalaD:\>scala DemoPlease enter your input : Scala is greatThanks, you just typed: Scala is great
Shell

阅读文件内容

从文件读取真的很简单。可以使用Scala的Source类及其对象来读取文件。以下是从前面创建的“Demo.txt”文件中读取的示例。

import scala.io.Sourceobject Demo { def main(args: Array[String]) { println("Following is the content read:" ) Source.fromFile("Demo.txt" ).foreach { print } } }
Scala

将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。

D:\>scalac Demo.scalaD:\>scala DemoFollowing is the content read:Hello Scala
 

转载于:https://www.cnblogs.com/xinfang520/p/7728554.html

你可能感兴趣的文章
Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法
查看>>
第二章 第四节 添加SWT库
查看>>
docker file
查看>>
总结一些常见的国际标准化组织
查看>>
webpack 使用经验记录
查看>>
sanic连接mongo
查看>>
python--文件操作
查看>>
乐肖产品逻辑
查看>>
ASA防火墙忘记密码之后的恢复步骤
查看>>
前端之练习1
查看>>
Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 8
查看>>
信息学院第九届ACM程序设计竞赛题解
查看>>
新手开发IOS的疑惑,待补充
查看>>
Java语法总结 - 内部类
查看>>
css样式优先级
查看>>
爬虫的自我修养
查看>>
我们到底需要一款什么样的管理软件
查看>>
微信mac版的bug 直接显示了消息原始数据
查看>>
【皇甫】☀Hibernate入门
查看>>
2018软件秋季学期学习总结
查看>>