Chcę zamknąć mój strumień w bloku finally, ale rzuca IOException
, więc wydaje się, że muszę zagnieździć kolejny blok try
w moim bloku finally
w celu zamknięcia strumienia. Czy to właściwa droga? Wydaje się nieco niezdarny.java spróbować w końcu zablokować, aby zamknąć strumień
Oto kod:
public void read() {
try {
r = new BufferedReader(new InputStreamReader(address.openStream()));
String inLine;
while ((inLine = r.readLine()) != null) {
System.out.println(inLine);
}
} catch (IOException readException) {
readException.printStackTrace();
} finally {
try {
if (r!=null) r.close();
} catch (Exception e){
e.printStackTrace();
}
}
}
możliwy duplikat [Czy istnieje preferencja dla zagnieżdżonych bloków try/catch?] (Http://stackoverflow.com/questions/183499/is-there-a-preference-for-nested-try-catch-blocks) –