|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 1182
|
consiglio java - try/catch/throws e scelte stilistiche
Ciao a tutti , volevo chiedervi un consiglio...
in una classe qual'è il modo "stilisticamente" più corretto di usare il costrutto try/catch per la gestione delle eccezioni? facciamo l'esempio di non voler usare il throws per gestire per esempio l'eccezione IOException... usiamo quindi il try/catch... ora... l'unico modo è usarlo ogni volta che uso readLine del BufferedReader? non va a scapito della leggibilità del file sorgente o c'è una soluzione alternativa?
__________________
Ho trattato con: Zano, Grey.fox, Skeja, KamiG, plc42, Iceworld, Manuelcese20, Alfagd, Mad_max2000, Legolas 81, weedmasta, Spank,LoveOverclock, Mastla, Rac00n,Ayrton,Felipe,Simonov,JokerVero,Mabru,Malleus,Jacopastorius! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Roma
Messaggi: 542
|
Se nel codice hai più volte l'istruzione readLine puoi mettere il try prima della prima volta in cui viene chiamata e lo chiudi dopo l'ultima volta che la chiami, se in mezzo ci sono istruzioni che non lanciano eccezioni non c'è nessun problema, puoi metterle dentro il try comunque, in questo modo con un unico try/catch puoi catturare tutte le eccezioni che possono partire.
__________________
Il 90% dei problemi di un computer si trova tra la tastiera e la sedia. XP2500+@3200+|A7N8X Deluxe|1,25 GB DDR400|Radeon 9550|HD 160+320 GB SATA|WinXP Pro|Fastweb 6 Mb/s |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Dipende com'è strutturato il tuo progetto...solitamente di demanda alla classe a livello superiore la gestione delle eccezioni, magari richiamando un metodo (es parseException) di una classe appositamente dedicata. Come si demanda?...semplicemente "lanciando" l'eccezione dichiarando il metodo throws Exception.
Altra buona scelta può essere combinare le due cose, per lanciare eccezione apposite... Codice:
public myMetodo()
throws Exception
{
FileInputStream fis = null;
ObjectInputStream ois = null;
try
{
fis = new FileInputStream( .... );
ois = new ObjectInputStream(fis);
desc = (Dati)ois.readObject();
return desc;
}catch(FileNotFoundException fnfe){
fnfe.printStackTrace(System.err);
throw new MyException1("mio messaggio");
}catch(StreamCorruptedException sce){
sce.printStackTrace(System.err);
throw new MyException2("Mio messaggio");
}
Nella classe superiore puoi interecttare MyException1 e MyException2...
Non so se riesci a cogliere l'utilità della cosa, principalmente è che puoi crearti ad oc le tue eccezioni coi tuoi messaggi...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:08.



















