| class Test { |
| static class ResourcefulException1 extends Exception { } |
| static class ResourcefulException2 extends Exception { } |
| static class ResourcefulException3 extends Exception { } |
| |
| static class ExceptionalResource implements AutoCloseable { |
| @Override public void close() throws ResourcefulException1 { } |
| } |
| |
| ExceptionalResource provideExceptionalResource() throws ResourcefulException2 { |
| return new ExceptionalResource(); |
| } |
| |
| void m() { |
| try (ExceptionalResource r = provideExceptionalResource()) { |
| System.out.println(r); |
| } |
| catch (Exception e) { |
| if (e instanceof ResourcefulException1) { |
| System.out.println("1"); |
| } |
| else if (e instanceof ResourcefulException2) { |
| System.out.println("2"); |
| } |
| else if (<warning descr="Condition 'e instanceof ResourcefulException3' is always 'false'">e instanceof ResourcefulException3</warning>) { |
| System.out.println("3"); |
| } |
| } |
| } |
| } |