aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/exceptions-2.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/run/exceptions-2.scala')
-rw-r--r--tests/pending/run/exceptions-2.scala349
1 files changed, 0 insertions, 349 deletions
diff --git a/tests/pending/run/exceptions-2.scala b/tests/pending/run/exceptions-2.scala
deleted file mode 100644
index 8d755c380..000000000
--- a/tests/pending/run/exceptions-2.scala
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Try exception handling and finally blocks.
- */
-
-trait Tree extends Exception;
-
-case class Node(a: Tree, b: Tree) extends Tree;
-case class Leaf(x: Int) extends Tree;
-
-
-object NoExcep {
- def a = true;
- def b = false;
- def c = true;
-
- def method1(t: Tree) = try {
- Console.println(t);
- } catch {
- case Node(Leaf(_), Leaf(_)) => a;
- case Leaf(_) => b;
- }
-
- def method2 = try {
- Console.println("Hello, world");
- } catch {
- case _: Error => Console.println("File error");
- case t: Throwable => Console.println("Unknown error");
- }
-
- def method3 = try {
- try {
- Console.println("method3");
- } catch {
- case Node(Leaf(_), Leaf(_)) => Console.println("First one");
- case Leaf(_) => Console.println("Second one");
- }
- } catch {
- case _: Error => Console.println("File error");
- case t: Exception => Console.println("Unknown error");
- }
-
- def method4 = try {
- Console.println("..");
- } catch {
- case _: Throwable => sys.error("..");
- }
-}
-
-object Test {
- def nested1: Unit = try {
- try {
- sys.error("nnnnoooo");
- } finally {
- Console.println("Innermost finally");
- }
- } finally {
- Console.println("Outermost finally");
- }
-
- def nested2 = try {
- try {
- sys.error("nnnnoooo");
- } finally {
- Console.println("Innermost finally");
- }
- Console.println("Intermediary step");
- } finally {
- Console.println("Outermost finally");
- }
-
- def mixed =
- try {
- if (10 > 0)
- throw Leaf(10);
- Console.println("nooo oneeee can priiiint meee");
- } catch {
- case Leaf(a) => Console.println(a);
- case _: Exception => Console.println("Exception occurred");
- } finally {
- Console.println("Finally!");
- }
-
- def method2: Unit = {
- try {
- if (10 > 0)
- throw Leaf(10);
- Console.println("nooo oneeee can priiiint meee");
- } catch {
- case Leaf(a) => Console.println(a);
- case _: Exception => Console.println("Exception occurred");
- }
-
- try {
- val a: Leaf = null;
- println(a.x);
- } catch {
- case Leaf(a) => Console.println(a);
- case _: NullPointerException => Console.println("Exception occurred");
- }
- }
-
- def method3: Unit = try {
- try {
- val a: Leaf = null;
- println(a.x);
- } catch {
- case Leaf(a) => Console.println(a);
- }
- } catch {
- case npe: NullPointerException =>
- Console.println("Caught an NPE");
- }
-
- def withValue1: Unit = {
- val x = try {
- 10
- } finally {
- Console.println("Oh, oh");
- };
- Console.println(x);
- }
-
- def withValue2: Unit = {
- val x = try {
- null
- } finally {
- Console.println("droped a null");
- };
- Console.println(x);
- }
-
- def tryFinallyTry: Unit = {
- try {
- ()
- } finally {
- try {
- sys.error("a");
- } catch {
- case _: Throwable => Console.println("Silently ignore exception in finally");
- }
- }
- }
-
- def valInFinally: Unit =
- try {
- } finally {
- val fin = "Abc";
- Console.println(fin);
- }
-
- def tryAndValInFinally: Unit =
- try {
- } finally {
- val fin = "Abc";
- try {
- Console.println(fin);
- } catch { case _: Throwable => () }
- }
-
- def returnInBody: Unit = try {
- try {
- Console.println("Normal execution...");
- return
- Console.println("non reachable code");
- } finally {
- Console.println("inner finally");
- }
- } finally {
- Console.println("Outer finally");
- }
-
- def returnInBodySynch: Unit = try {
- synchronized {
- try {
- Console.println("Synchronized normal execution...");
- return
- Console.println("non reachable code");
- } finally {
- Console.println("inner finally");
- }
- }
- } finally {
- Console.println("Outer finally");
- }
-
-
- def returnInBodyAndInFinally: Unit = try {
- try {
- Console.println("Normal execution...");
- return
- Console.println("non reachable code");
- } finally {
- Console.println("inner finally");
- return
- }
- } finally {
- Console.println("Outer finally");
- return
- }
-
- def returnInBodyAndInFinally2: Unit = try {
- try {
- Console.println("Normal execution...");
- return
- Console.println("non reachable code");
- } finally {
- try {
- Console.println("inner finally");
- return
- } finally {
- Console.println("finally inside finally");
- }
- }
- } finally {
- Console.println("Outer finally");
- return
- }
-
- /** bug #1020, no crash at compile time */
- def tryCatchInFinally: Unit = {
- try {
- Console.println("Try")
- } catch {
- case e:java.io.IOException =>
- throw e
- } finally {
- val x = 10
- // Always make sure result sets and statements are closed,
- // and the connection is returned to the pool
- if (x != 10) {
- try { Console.println("Fin"); } catch { case e:java.io.IOException => ; }
- }
- }
- }
-
- def tryThrowFinally: Unit = {
- try {
- print("A")
- throw new Exception
- } catch {
- case e : Exception =>
- print("B")
- throw e
- } finally {
- println("C")
- }
- }
-
- def execute(f: => Unit) = try {
- f;
- } catch {
- case _: Throwable => ()
- }
-
-
- def returnWithFinallyClean: Int = try {
- try {
- Console.println("Normal execution...");
- return 10
- Console.println("non reachable code");
- 11
- } finally {
- Console.println("inner finally");
- }
- } finally {
- Console.println("Outer finally");
- try { 1 } catch { case e: java.io.IOException => () }
- }
-
- /** Test that empty finally clauses containing while are correctly emitted.
- */
- class Issue {
- var b = 0
- try {
- // println("abc")
- } finally {
- while (b == -1) {b = 0}
- }
- }
-
- /* Tests that class Issue passes verification. */
- def whileInFinally = {
- new Issue
- }
-
-
-
- def main(args: Array[String]): Unit = {
- Console.println("nested1: ");
- execute(nested1);
-
- Console.println("nested2: ");
- execute(nested2);
-
- Console.println("mixed: ");
- execute(mixed);
-
- Console.println("withValue1:");
- execute(withValue1);
-
- Console.println("withValue2:");
- execute(withValue2);
-
- Console.println("method2:");
- execute(method2);
-
- Console.println("method3:");
- execute(method3);
-
- Console.println("tryFinallyTry:");
- execute(tryFinallyTry);
-
- Console.println("valInFinally:");
- execute(valInFinally);
- Console.println("tryAndValInFinally");
- execute(tryAndValInFinally);
-
- Console.println("=================");
-
- Console.println("NoExcep.method2:");
- execute(NoExcep.method2);
-
- Console.println("NoExcep.method3:");
- execute(NoExcep.method3);
-
- Console.println("NoExcep.method4:");
- execute(NoExcep.method4);
-
- Console.println("Return inside body:");
- execute(returnInBody);
-
- Console.println("Return inside synchronized body:");
- execute(returnInBodySynch);
-
- Console.println("Return inside body and return in finally:");
- execute(returnInBodyAndInFinally);
-
- Console.println("Return inside body and return in finally inside finally:");
- execute(returnInBodyAndInFinally2);
-
- Console.println("Throw in catch and finally:");
- execute(tryThrowFinally);
-
- Console.println("Return with finally clause that cleans the stack")
- returnWithFinallyClean
-
- whileInFinally
- }
-}