Wed, 27 Apr 2011 17:03:24 -0700
7039822: Project Coin: add explicit tests for the lub of an exception parameter
Reviewed-by: mcimadamore, jjg
mcimadamore@550 | 1 | /* |
mcimadamore@550 | 2 | * @test /nodynamiccopyright/ |
mcimadamore@550 | 3 | * @bug 6943289 |
mcimadamore@550 | 4 | * |
mcimadamore@550 | 5 | * @summary Project Coin: Improved Exception Handling for Java (aka 'multicatch') |
mcimadamore@550 | 6 | * @author mcimadamore |
mcimadamore@550 | 7 | * @compile/fail/ref=Neg03.out -XDrawDiagnostics Neg03.java |
mcimadamore@550 | 8 | * |
mcimadamore@550 | 9 | */ |
mcimadamore@550 | 10 | |
mcimadamore@550 | 11 | class Neg03 { |
mcimadamore@550 | 12 | |
mcimadamore@735 | 13 | static class A extends Exception { public void m() {}; public Object f;} |
mcimadamore@735 | 14 | static class B1 extends A {} |
mcimadamore@735 | 15 | static class B2 extends A {} |
mcimadamore@735 | 16 | |
mcimadamore@735 | 17 | void m() throws B1, B2 { |
mcimadamore@550 | 18 | try { |
mcimadamore@550 | 19 | if (true) { |
mcimadamore@735 | 20 | throw new B1(); |
mcimadamore@550 | 21 | } |
mcimadamore@550 | 22 | else { |
mcimadamore@735 | 23 | throw new B2(); |
mcimadamore@550 | 24 | } |
mcimadamore@735 | 25 | } catch (Exception ex) { |
mcimadamore@735 | 26 | ex = new B2(); //effectively final analysis disabled! |
mcimadamore@735 | 27 | throw ex; |
mcimadamore@550 | 28 | } |
mcimadamore@550 | 29 | } |
mcimadamore@550 | 30 | } |