|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2008
Messaggi: 2000
|
[JAVA] differenze throws o try-catch
Salve a tutti
Sono uno studente universitario di informatica, studiando sul Savitch non mi è chiara una cosa: quando mi conviene usare la clausula throws e quando gestire l'eccezione con try-catch? La cosa conveniente di usare il throws è che sollevo un'eccezione che dovrà esser controllata dal chiamante (o chi per esso), mentre il try-catch mi permette di gestire immediatamente e nel metodo attuale l'eccezione. Ma perchè è più conveniente talvolta la clausula throws e delegare l'eccezione? Per migliorare la leggibilità del chiamante qualora non venisse sollevata alcuna eccez? Per poter riutilizzare i metodi? È solo una cosa stilistica, di ordine? Io se penso alla gestione dell'eccezione in maniera naturale la penso in try-catch, senza throws se mi faceste un esempio di codice, uno scenario facile facile, in cui conviene usare l'uno o l'altro ve ne sarei molto grato (il codice è la parte più chiara talvolta) Saluti
__________________
"Sei fortunato che non sei un mio studente. Non prenderesti un buon voto per un tale progetto" [Andrew Stuart Tanenbaum a Linus Torvalds nel 1991, sul kernel linux] Linux user number 534122 Ultima modifica di cloutz : 08-04-2011 alle 13:00. |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: May 2007
Messaggi: 28
|
UP
Ragazzi servirebbe anche a me sapere quando conviene usare Throws e quando un blocco Try/Catch |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Sep 2007
Città: Albiolo (CO)
Messaggi: 165
|
La clausola throws va utilizzata nel caso in cui si vuole gestire un'eccezione nello stesso modo in cui è gestita dalle superclassi o nel caso in cui si voglia far gestire l'eccezione dal sistema.
Il blocco try-catch va invece utilizzato se si vuole che un'eccezione sia gestita differentemente da come sopra descritto. Esempio: devo fare una conversione di un numero da stringa a intero. Mi interessa che le eccezioni di NullPointerException e di NumberFormatException vengano stampate a video e il programma ritorni 0. La gestione di ogni altra eccezione invece non mi interessa. Il metodo di conversione dovrà essere impostato in questo modo. Codice:
public Integer conversioneStringInteger(String numStr) throws Exception {
Integer numInt;
try {
numInt = Integer.parseInt(numStr);
catch (NullPointerException npeEx) {
System.out.println("NullPointerException raised" + npeEx.getMessage());
return 0;
} catch (NumberFormatException nfEx) {
System.out.println("NumberFormatException raised" + nfEx.getMessage());
return 0;
}
return numInt;
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:26.



















