equal
deleted
inserted
replaced
43 else if (exn.isInstanceOf[RuntimeException]) Some(exn.toString) |
43 else if (exn.isInstanceOf[RuntimeException]) Some(exn.toString) |
44 else None |
44 else None |
45 |
45 |
46 def message(exn: Throwable): String = |
46 def message(exn: Throwable): String = |
47 user_message(exn) getOrElse exn.toString |
47 user_message(exn) getOrElse exn.toString |
|
48 |
|
49 |
|
50 /* recover from spurious crash */ |
|
51 |
|
52 def recover[A](e: => A): A = |
|
53 { |
|
54 capture(e) match { |
|
55 case Res(x) => x |
|
56 case Exn(exn) => |
|
57 capture(e) match { |
|
58 case Res(x) => |
|
59 java.lang.System.err.println("Recovered from spurious crash after retry!") |
|
60 exn.printStackTrace() |
|
61 x |
|
62 case Exn(_) => throw exn |
|
63 } |
|
64 } |
|
65 } |
48 } |
66 } |
49 |
67 |