Andrea16v
24-08-2006, 12:12
Sto facendo un programma che legge e scrive su un file di testo. Il compilatore si lamenta ovviamente se non dichiaro le eccezioni (file mancante e io) in ogni metodo, ho dovuto pertanto inserire il throws anche nel main, cosa che su alcuni libri di programmazione che ho letto viene dichiarata come molto infelice.
Se volessi sovrascrivere i msg di errore a livello run time (quando per esempio il file non viene trovato) con una stringa di mia invenzione, dovrei fare un enunciato try-catch per ogni metodo (appesantendo notevolmente il codice) oppure c'è qualche scorciatoia per farlo una volta sola e magari anche per togliere il throws da tutte le intestazioni di metodo?
public class TestGiocatori {
public static void inserisciGiocatore()
throws FileNotFoundException, IOException {
File file = new File ("Giocatori.txt");
ListaGiocatori giocatori = new ListaGiocatori(file);
giocatori.load(file);
System.out.println("Scrivi il nome del nuovo giocatore");
String nome=console.readLine();
// e cosi' per tutti gli altri valori..
}
public static void cercaDatiDaNome()
throws FileNotFoundException, IOException { ...
}
public static void cercaPerSquadra()
throws FileNotFoundException, IOException { ...
}
public static void mostraBenvenuto()
throws FileNotFoundException, IOException { ...
// attraverso System.out.println visualizza un msg di benvenuto
}
public static void mostraMenu()
throws FileNotFoundException, IOException {
System.out.println("Digita I per inserire un nuovo giocatore.");
System.out.println("Digita T per cercare un giocatore dato il nome.");
// ecc ecc
if (c=='I') inserisciGiocatore();
else if (c=='T') cercaDatiDaNome(); // ecc ecc
}
public static void main (String[] args)
throws FileNotFoundException, IOException {
mostraBenvenuto();
mostraMenu();
}
}
Se volessi sovrascrivere i msg di errore a livello run time (quando per esempio il file non viene trovato) con una stringa di mia invenzione, dovrei fare un enunciato try-catch per ogni metodo (appesantendo notevolmente il codice) oppure c'è qualche scorciatoia per farlo una volta sola e magari anche per togliere il throws da tutte le intestazioni di metodo?
public class TestGiocatori {
public static void inserisciGiocatore()
throws FileNotFoundException, IOException {
File file = new File ("Giocatori.txt");
ListaGiocatori giocatori = new ListaGiocatori(file);
giocatori.load(file);
System.out.println("Scrivi il nome del nuovo giocatore");
String nome=console.readLine();
// e cosi' per tutti gli altri valori..
}
public static void cercaDatiDaNome()
throws FileNotFoundException, IOException { ...
}
public static void cercaPerSquadra()
throws FileNotFoundException, IOException { ...
}
public static void mostraBenvenuto()
throws FileNotFoundException, IOException { ...
// attraverso System.out.println visualizza un msg di benvenuto
}
public static void mostraMenu()
throws FileNotFoundException, IOException {
System.out.println("Digita I per inserire un nuovo giocatore.");
System.out.println("Digita T per cercare un giocatore dato il nome.");
// ecc ecc
if (c=='I') inserisciGiocatore();
else if (c=='T') cercaDatiDaNome(); // ecc ecc
}
public static void main (String[] args)
throws FileNotFoundException, IOException {
mostraBenvenuto();
mostraMenu();
}
}