Java io brutto blocco try-finally

C’è un modo non così brutto di trattare l’eccezione close() per chiudere entrambi i flussi quindi:

  InputStream in = new FileInputStream(inputFileName); OutputStream out = new FileOutputStream(outputFileName); try { copy(in, out); } finally { try { in.close(); } catch (Exception e) { try { // event if in.close fails, need to close the out out.close(); } catch (Exception e2) {} throw e; // and throw the 'in' exception } } out.close(); } 

aggiornamento: Tutto il codice sopra è entro un altro try-catch, grazie per gli avvertimenti.

INFINE (dopo le risposte):

E un buon metodo di utilità può essere fatto usando l’ idioma di Execute Around (grazie a Tom Hawtin).