Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Programmazione > Esercizio su eccezioni: non stampa nulla!
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
albakiara
.illuminato.

User info:
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Esercizio su eccezioni: non stampa nulla!

Salve a tutti,
sto compilando questo esercizio scritto dal prof nell'esame di luglio2010, ho inizializzato l'array con i valori indicati dal prof, ed ho aggiunto in più in ogni catch l'istruzione per stampare il valore di e, però non capisco il motivo per cui non stampa nulla. Qaulcuno mi sa aiutare please?:?
Allego il codice!

Attachment: num3.java
This has been downloaded 27 time(s).

02-02-2011 12:16
Click Here to See the Profile for albakiara Click here to Send albakiara a Private Message Find more posts by albakiara Add albakiara to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ma l'eccezione si verifica o no?

02-02-2011 12:33
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

non stampa alcunchè perchè, nel blocco di codice che hai allegato non si verifica alcuna eccezione! Quindi nessun blocco catch verrà eseguito.

Il valore della variabile e, alla fine dell'escuzione sarà 11.

02-02-2011 12:57
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
zandrek
.fedelissimo.

User info:
Registered: Oct 2003
Posts: 59 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 21:43:33 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

guarda io ho passato proprio quello scritto ma una delle catch proprio non l'ho risolta = sbagliato un pezzo dell'esercizio.

comunque "ArrayIndexOutOfBoundsException" dubito ti esca usando un for each [prova a scorrere con un for normale e mandalo oltre la misura massima cosi ti da quell'errore]

"ArithmeticException ecc)"
si ottiene quando dividi per zero o robe simili

"null pointer" dovrebbe essere quando fai riferimento a zona di memoria non inizializzata

al posto di

code:
e=e/valori[c].getCent();


prova a far cosi (non ho testato)

code:
e=e/0;

Last edited by zandrek on 02-02-2011 at 13:07

02-02-2011 13:05
Click Here to See the Profile for zandrek Click here to Send zandrek a Private Message Find more posts by zandrek Add zandrek to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

NOOOO!

Scusami zandrek ma hai detto una castroneria.
Se sostituisce l'istruzione con una divisione per zero ovviamente si verifica un ArtitmeticException e, di conseguenza va in esecuzione il blocco catch corrispondente.

Nel suo caso non si verifica alcuna eccezione (22 / 2 non da luogo ad alcuna eccezione),
e di conseguenza la variabile e assume il valore che ha assunto nel ciclo for senza l'esecuzione di alcun blocco catch.

Last edited by enrico.k on 02-02-2011 at 13:28

02-02-2011 13:13
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Comunque, avendo passato anche io questa prova di esame ti do i diversi risultati degli esercizi (li ho accaqnto a me e so di averli fatti giusti :) )


In ogni caso ho passato anche io quella prova d'esame e l'esercizio sulle eccezioni lo ho fatto giusto ed in questo momento ho il foglio della prova accanto a me.

(a) il valore di e è 37
L'eccezione si verifica perchè provi a puntare ad una poisizione 10 dell'array quando la posizione più alta è 3.

(b)(il tuo caso) il valore di e è 11 (ArrayIndexOutOfBoundsException)
Semplicemente non si verifcano eccezioni..

(c) il valore di e è 8 (NullPointerException)
L'eccezione si verifca perchè si tenta di accedere ad un array non inizializzato.

(d) il valore di e è 26 (ArtithmeticException)
L'eccezione si verifica a causa dei una divisione per zero (20/0).

02-02-2011 13:37
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
zandrek
.fedelissimo.

User info:
Registered: Oct 2003
Posts: 59 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 21:43:33 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ah ma basta dire che nell'esempio vale 11?
cioè nel for e=22 e c=0.03 quindi 22/3 =11

quel che ho scritto io è per far saltar fuori proprio l' artithmeticException in generale....in effetti non centra una mazza in questo caso...

02-02-2011 14:16
Click Here to See the Profile for zandrek Click here to Send zandrek a Private Message Find more posts by zandrek Add zandrek to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

L'esercizio chiede il valore di e al termine dell'esecuzione del codice.

Essendo l'istruzione

PHP:

e=e/valori[c].getCent();



assegnerà alla variabile e il valore ottenuto dividendo la stessa variabile e per il valore che si ottiene eseguendo il metodo getCent sull oggetto di tipo Importo presente sulla c(3) posizione dell'array.

Dato che
* Il valore di e prima della divisione è 22.
* il valore ottenuto con il metodo getCent() dall'oggetto di tipo importo presente nella terza posizione dell'array è 2

22/2 = 11

dimmi se è tutto chiaro:)

Last edited by enrico.k on 02-02-2011 at 14:28

02-02-2011 14:23
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
albakiara
.illuminato.

User info:
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

grazie cmq.. io avevo dato x scontato che si verificasse l'eccezione!!!
mi potete dire cosa fa l'istruzione:
for (Importo v: valori) ?

02-02-2011 15:02
Click Here to See the Profile for albakiara Click here to Send albakiara a Private Message Find more posts by albakiara Add albakiara to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Si chiama ciclo for-each (per ogni)

E' un ciclo for che permeette di scansionare tutti gli oggetti/valori contenuti in un array.
Partendo dalla posizione 0 e crescendo di una posizione ad ogni valore, la variabile v conterrà il riferimento ad ogni oggetto (o il valore di ogni primitivo) presente nell'array ad uno ad uno.

In questo caso alla prima iterazione conterrà il riferimento all'oggetto ti tipo Intero(10.00)(posizione 0), alla seconda a quello ti tipo Intero (0.01)(posizione 1), alla terza a Intero(2.00) (posizione 2)alla quarta Intero(20,02)(posizione 3).


Il ciclo for-each è utilizzabile con gli array e con tutti gli oggetti contenitore la cui classe implementa l'interfaccia Iterable (sempre a proposito di interfacce:)).

Last edited by enrico.k on 02-02-2011 at 15:14

02-02-2011 15:08
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
albakiara
.illuminato.

User info:
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Grazie!
Mi potreste dire qual'è la sintassi per dire che valori contiene null?

06-02-2011 10:52
Click Here to See the Profile for albakiara Click here to Send albakiara a Private Message Find more posts by albakiara Add albakiara to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

non ho capito bene la domanda...
prova a spiegarti meglio :)

06-02-2011 13:08
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
albakiara
.illuminato.

User info:
Registered: Sep 2010
Posts: 157 (0.03 al dì)
Location: Pavia
Corso: informatica
Anno: 3
Time Online: 19:31:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Se l'array contenesse null. La sintassi sarebbe questa?
Importo [] valori= {};

11-02-2011 12:40
Click Here to See the Profile for albakiara Click here to Send albakiara a Private Message Find more posts by albakiara Add albakiara to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enrico.k
.fedelissimo.

User info:
Registered: Oct 2009
Posts: 46 (0.01 al dì)
Location: Mi
Corso: Informatica
Anno: Primo
Time Online: 2 Days, 8:12:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

No, quello è un array vuoto ma comunque è inizializzato.
Un array vuoto è cosa completamente diversa da una variabile non inizializzata.

La variabile Importo[] fa riferimento a null se e non fa riferimento ad alcuno spazio di memoria inizializzato.

Questo può accadere se la fdichiari senza specificare alcun array

es.
Importo[] valori;

oppure se espliciti che non fa riferimento a niente

es.
Importo[] valori = null;




Prova a verificare ciò che ti ho detto scrivendoti due piccoli piccoli programmi di prova in cui provi ad accedere nel primo ad un array vuoto nel secondo ad una variabile non inizializzata per vedere cosa accade..

Last edited by enrico.k on 11-02-2011 at 17:20

11-02-2011 15:13
Click Here to See the Profile for enrico.k Click here to Send enrico.k a Private Message Find more posts by enrico.k Add enrico.k to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 17:38.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.605 seconds (79.63% PHP - 20.37% MySQL) con 25 query.