Exceção saindo de close () em try-with-resource

Eu estava lendo sobre o try-with-resource no JDK7 e enquanto eu estava pensando em atualizar meu aplicativo para rodar com o JDK7 eu enfrentei esse problema ..

Ao usar um BufferedReader, por exemplo, a gravação gera IOException e o fechamento gera IOException. No bloco catch, estou preocupado com a IOException lançada pela gravação ... mas eu não me importo muito com a que é lançada pelo fechamento.

Mesmo problema com conexões de banco de dados .. e qualquer outro recurso ..

Como exemplo, criei um recurso de fechamento automático:

public class AutoCloseableExample implements AutoCloseable {

    public AutoCloseableExample() throws IOException{
        throw new IOException();
    }

    @Override
    public void close() throws IOException {
        throw new IOException("An Exception During Close");
    }

}

Agora, ao usá-lo:

public class AutoCloseTest {

    public static void main(String[] args) throws Exception {
        try (AutoCloseableExample example = new AutoCloseableExample()) {
            System.out.println(example);

            throw new IOException("An Exception During Read");
        } catch (Exception x) {
            System.out.println(x.getMessage());
        } 
    }

}

Como posso distinguir entre essas exceções sem ter que criar wrappers para classes como BufferedReader?

Na maioria dos casos, eu coloco o recurso perto de um try / catch dentro do bloco finally sem me importar muito em lidar com ele.

questionAnswers(2)

yourAnswerToTheQuestion