diff options
Diffstat (limited to 'test/files/run/exceptions.scala')
-rw-r--r-- | test/files/run/exceptions.scala | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/files/run/exceptions.scala b/test/files/run/exceptions.scala new file mode 100644 index 0000000000..04fc4a1a85 --- /dev/null +++ b/test/files/run/exceptions.scala @@ -0,0 +1,53 @@ +//############################################################################ +// Exceptions +//############################################################################ +// $Id$ + +//############################################################################ + +abstract class IntMap[A] { + def lookup(key: Int): A = this match { + case Empty() => error("KO") + case _ => error("ok") + } +} + +case class Empty[A]() extends IntMap[A]; + +object exceptions { + + def check(what: String, actual: Any, expected: Any): Unit = { + val success: Boolean = actual == expected; + Console.print(if (success) "ok" else "KO"); + var value: String = if (actual == null) "null" else actual.toString(); + if (value == "\u0000") value = "\\u0000"; + Console.print(": " + what + " = " + value); + if (!success) Console.print(" != " + expected); + Console.println; + Console.flush; + } + + def test: Unit = { + val key = 2000; + val map: IntMap[String] = new Empty[String]; + val value = try { + map.lookup(key) + } catch { + case e => scala.runtime.compat.Platform.getMessage(e) + } + check("lookup(" + key + ")", value, "KO"); + } + +} + +//############################################################################ + +object Test { + + def main(args: Array[String]): Unit = { + exceptions.test; + } + +} + +//############################################################################ |