| /* |
| * @test /nodynamiccopyright/ |
| * @bug 4986256 |
| * @compile/ref=Finally.out -XDrawDiagnostics -Xlint:all Finally.java |
| */ |
| |
| // control: this class should generate a warning |
| class Finally |
| { |
| int m1(int i) { |
| try { |
| return 0; |
| } |
| finally { |
| throw new IllegalArgumentException(); |
| } |
| } |
| } |
| |
| // tests: the warnings that would otherwise be generated should all be suppressed |
| @SuppressWarnings("finally") |
| class Finally1 |
| { |
| int m1(int i) { |
| try { |
| return 0; |
| } |
| finally { |
| throw new IllegalArgumentException(); |
| } |
| } |
| } |
| |
| class Finally2 |
| { |
| @SuppressWarnings("finally") |
| class Bar { |
| int m1(int i) { |
| try { |
| return 0; |
| } |
| finally { |
| throw new IllegalArgumentException(); |
| } |
| } |
| } |
| |
| @SuppressWarnings("finally") |
| int m2(int i) { |
| try { |
| return 0; |
| } |
| finally { |
| throw new IllegalArgumentException(); |
| } |
| } |
| |
| |
| @SuppressWarnings("finally") |
| static int x = new Finally2() { |
| int m1(int i) { |
| try { |
| return 0; |
| } |
| finally { |
| throw new IllegalArgumentException(); |
| } |
| } |
| }.m1(0); |
| |
| } |