|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Non è proprio così.
Dal momento che viene lanciata la eccezione NullPointerException, quello che è sicuro è che il codice nel try non può continuare e quindi return str.length () non viene eseguito. Il catch che è in grado di gestire la eccezione è quello sotto il try, pertanto viene stampato "Sono nel catch". Il catch fa un return di -1. In quel punto quindi la "ragione" di uscita del metodo sarebbe il ritorno di -1. Ma visto che c'è il finally, prima di fare il return viene eseguito in ogni caso il codice nel finally. Nota che la ragione di uscita del return di -1 viene temporaneamente "memorizzata". Il finally viene eseguito e stampa "Sono nel finally" poi fa il return di -2. Visto che il finally causa una nuova ragione di uscita, quella precedente viene dimenticata e quindi il metodo restituisce -2. Morale della storia: se nel finally si causa una nuova ragione di uscita, lanciando una eccezione o facendo un return, qualunque ragione di uscita precedente viene cancellata.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Nov 2006
Messaggi: 355
|
Potete aiutarmi a risolvere questo esercizio?
Un operatore telefonico ha organizzato l’archivio anagrafico dei propri clienti in un file denominato “Anagrafe.dat” ordinato in senso crescente rispetto al cognome, come segue: Nome Cliente Cognome Cliente Numero Telefono Esempio: Gerardo Bianchi 0333457362 Rosa Clementino 0543778825 … … Pasquale Zigone 2234887289 Per ogni telefonata effettuata viene prodotto ed accodato ad un file denominato “telefonate.dat” un record con le seguenti informazioni: Numero-chiamante Numero-chiamato Durata (in secondi) Esempio: 0543778825 0834586372 15 2234887289 0834765736 358 … … 0543778825 8463726534 446 Scrivere un programma che riceva in ingresso (possibilmente dalla linea di comando) il cognome e nome di due persone e calcoli il tempo totale di conversazione fra le due persone. Ho caricato gli elementi dei due file su due ArrayList, ma adesso non so come continuare! Le classi Tel e Ele già le ho fatte. import java.util.Scanner; import java.util.ArrayList; import java.io.FileReader; class Array { public Array (String file, String file1) throws Exception { Scanner n = new Scanner (new FileReader (file)); Scanner m = new Scanner (new FileReader (file1)); ArrayList<Ele> a = new ArrayList<Ele>(); ArrayList<Tel> z = new ArrayList<Tel>(); Ele b = Ele.read(n); while(b != null) { a.add(b); b = Ele.read(n); } Tel x = Tel.read1(m); while(x != null) { z.add(x); x = Tel.read1(m); } n.close(); m.close(); }
__________________
Ho concluso felicemente molte transizioni su altri forum e ben 60 feedback positivi su eBay--- Ho concluso felicemete con : royaleagle, SUPERALEX, bambà, bartmad, blade86. |
![]() |
![]() |
![]() |
#23 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:58.