File: t6333.scala

package info (click to toggle)
scala 2.11.12-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 62,776 kB
  • sloc: java: 13,415; xml: 3,252; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (29 lines) | stat: -rw-r--r-- 844 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
object Test extends App {
  import util.Try

  val a = "apple"
  def fail: String = throw new Exception("Fail!")
  def argh: Try[String] = throw new Exception("Argh!")

  // No throw tests
  def tryMethods(expr: => String): Unit = {
    Try(expr) orElse argh
    Try(expr).transform(_ => argh, _ => argh)
    Try(expr).recoverWith { case e if (a == fail) => Try(a) }
    Try(expr).recoverWith { case _ => argh }
    Try(expr).getOrElse(a)
    // TODO - Fail getOrElse?
    Try(expr) orElse argh
    Try(expr) orElse Try(a)
    Try(expr) map (_ => fail)
    Try(expr) map (_ => a)
    Try(expr) flatMap (_ => argh)
    Try(expr) flatMap (_ => Try(a))
    Try(expr) filter (_ => throw new Exception("O NOES"))
    Try(expr) filter (_ => true)
    Try(expr) recover { case _ => fail }
    Try(expr).failed
  }
  tryMethods(a)
  tryMethods(fail)
}