Sì. Solo alcuni suggerimenti sul trattamento delle eccezioni
1) Non ammazzare le eccezioni (se non in casi limiti)
2) Prevedi sempre la possibilità che qualcosa vada storto e, di conseguenza, vada tutto ripulito.
Da questo deriva il seguente schema per il trattamento delle eccezioni in ambito I/O:
Ciao.codice:// Dichiaro gli oggetti che andrò ad usare, separatamente // e li inizializzo esplicitamente a null PrintWriter out = null; FileWriter fw = null; // Apro il blocco try/catch/finally try { // Istanzio e uso gli oggetti, sempre su righe di codice separate fw = new FileWriter("pippo.txt"); out = new PrintWriter( fw ); ... // Effettuo la mia elaborazione // Ho finito il lavoro.. faccio solo il flush() out.flush(); } catch (Exception e) { // Si è verificata un'eccezione: ne stampo lo stackTrace e.printStackTrace(); ... // Posso anche stampare informazioni aggiuntive } finally { // Questo blocco viene sempre eseguito, anche in caso di eccezioni o return // Questo è un buon posto dove fare le chiusure if (out != null) { try { out.close(); } catch (Exception e) { /* eccezione in chiusura, non posso farci nulla */ } } else { if (fw != null) { try { fw.close(); } catch (Exception e) { /* come sopra */ } } } }![]()



Rispondi quotando