1 /*
2  * @test /nodynamiccopyright/
3  * @bug 4240487
4  * @summary Verify that we keep track of init/uninits in Try statement
5  * without finalizer.
6  *
7  * @compile/fail/ref=DefAssignAfterTry2.out -XDrawDiagnostics  DefAssignAfterTry2.java
8  */
9 
10 class E1 extends Exception {}
11 class E2 extends Exception {}
12 
13 public class DefAssignAfterTry2 {
main(String argv[])14     public static void main(String argv[]) {
15         boolean t = true;
16         E1 se1 = new E1();
17         E2 se2 = new E2();
18         int i;
19         try {
20             if (t) {
21                 i = 0;
22                 throw se1;
23             } else {
24                 throw se2;
25             }
26         } catch (E1 e) {
27         } catch (E2 e) {
28             i = 0;
29         }
30         // the following line should result in a compile-time error
31         // variable i may not have been initialized
32         System.out.println(i);
33         System.out.println("Error : there should be compile-time errors");
34     }
35 }
36