/* * @test /nodynamiccopyright/ * @bug 4240487 * @summary Verify that we keep track of init/uninits in Try statement * without finalizer. * * @compile/fail/ref=DefAssignAfterTry3.out -XDrawDiagnostics DefAssignAfterTry3.java */ class E1 extends Exception {} class E2 extends Exception {} public class DefAssignAfterTry3 { public static void main(String argv[]) { boolean t = true; E1 se1 = new E1(); E2 se2 = new E2(); int i; try { i = 0; if (t) throw se1; else throw se2; } catch (E1 e) { } catch (E2 e) { i = 0; } // the following line should result in a compile-time error // variable i may not have been initialized System.out.println(i); System.out.println("Error : there should be compile-time errors"); } }