zoukankan      html  css  js  c++  java
  • Spark记录-Scala异常处理与文件I/O

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

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

    引发异常

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

    throw new IllegalArgumentException
    
    Scala

    捕获异常

    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")
             }
          }
       }
    }
    
    Scala

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

    D:>scalac Demo.scala
    D:>scala Demo
    Missing file exception
    
    Shell

    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...")
          }
       }
    }
    
    Scala

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

    D:>scalac Demo.scala
    D:>scala Demo
    Missing file exception
    Exiting 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.scala
    D:>scala Demo
    Hello 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.scala
    D:>scala Demo
    Please enter your input : Scala is great
    Thanks, you just typed: Scala is great
    
    Shell

    阅读文件内容

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

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

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

    D:>scalac Demo.scala
    D:>scala Demo
    Following is the content read:
    Hello Scala
     
  • 相关阅读:
    音乐
    脚本注释的作用
    JavaScript状态栏冒泡
    JavaScript动态显示时间
    正则表达式
    JavaScript数组的最大长度
    加密(编码)web.config中的信息(如:连接字符串)
    JavaScript实现EMAIL功能
    JavaScript检测分辨率
    JavaScript如何给网页滚动条加上颜色?
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7728554.html
Copyright © 2011-2022 走看看