Wyjątek wychodzący z close () w try-with-resource

Czytałem o try-with-resource w JDK7 i podczas gdy myślałem o uaktualnieniu mojej aplikacji do pracy z JDK7, miałem do czynienia z tym problemem ..

Podczas używania BufferedReader na przykład zapis rzuca IOException, a close zgłasza IOException .. w bloku catch. Obawiam się o IOException rzuconym przez write .. ale nie przejmowałbym się tym, co rzuciło blisko.

Ten sam problem z połączeniami z bazą danych .. i innymi zasobami ..

Jako przykład utworzyłem zasób automatycznego zamykania:

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");
    }

}

Teraz, gdy go używasz:

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());
        } 
    }

}

jak mogę odróżnić takie wyjątki bez konieczności tworzenia opakowań dla klas takich jak BufferedReader?

W większości przypadków zamykam zasób w try / catch wewnątrz bloku finally, nie troszcząc się zbytnio o jego obsługę.

questionAnswers(2)

yourAnswerToTheQuestion