blob: 266d95ce69c449c9d238a6a463e8595f10554790 (
plain) (
blame)
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)
}
|