summaryrefslogtreecommitdiff
path: root/test/files/run/exceptions.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/run/exceptions.scala')
-rw-r--r--test/files/run/exceptions.scala53
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;
+ }
+
+}
+
+//############################################################################