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 30 31
object Ex { def unapply(t: Throwable): Option[Throwable] = Some(t) } class A { var x = "" def bar = try { "bar" } finally { try { x += "a" } finally { x += "b" try { x += "c" throw null } catch { case Ex(_) => x += "d" } } } } object Test extends App { val a = new A println(a.bar) println(a.x) }