czytałem o try-with-zasobu JDK7 i gdy myślałem o modernizacji mojej aplikacji do uruchomienia z JDK7 I w obliczu tego problemu ..Wyjątek wychodzi Close() w try-with-zasobu
Podczas korzystania z BufferedReader, na przykład, zapis rzuca wyjątek IOException i zamyka rzutuje IOException .. w bloku catch Jestem zaniepokojony IOException wyrzucony przez napis .. ale nie obchodzi mnie dużo o tym, rzucił przez blisko ..
sam problem z połączeniami baz .. i każdy inny zasób ..
Jako przykład Utworzyłem auto zamykany resou RCE:
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 podczas używania go:
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ć takich wyjątków, bez konieczności tworzenia otoki dla klas takich jak BufferedReader?
W większości przypadków umieszczam zasób w próbie/haczyku wewnątrz bloku końcowego, nie troszcząc się zbytnio o jego obsługę.
Gdzie jest kod? –
Mam na myśli ogólną koncepcję. Tak czy inaczej .. Dodam fragment kodu teraz .. –