A simple Scala Try, Success, Failure example (reading a file)

Sorry, I don’t have much free time these days, so without any discussion, here’s a simple Scala Try, Success, and Failure example:

import scala.io.Source
import scala.util.{Try,Success,Failure}

object Test extends App {

    def readTextFile(filename: String): Try[List[String]] = {
        Try(Source.fromFile(filename).getLines.toList)
    }

    val filename = "/etc/passwd"
    readTextFile(filename) match {
        case Success(lines) => lines.foreach(println)
        case Failure(f) => println(f)
    }

}

This code will print the lines from the /etc/passwd file if there are no problems, and will print an exception like this if there are problems, such as trying to read the lines from a file named Foo.bar that doesn't exist:

java.io.FileNotFoundException: Foo.bar (No such file or directory)

I’ll try to write more on this another time, but for today I just wanted to share the source code in case anyone needs a simple Try/Success/Failure example. In the meantime, see the scala.util.Try documentation for more information.

(One thing you should get from this example is that Try/Success/Failure is an alternative to using Option/Some/None. Specifically, Failure returns whatever text you want from your method when the code in the method fails. In the example shown, Failure contains the exception information from when the given file doesn’t exist, or there is some other problem with the reading the file.)