Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 09-06-2005, 11.16.06   #31
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Eccezioni:
ti dovrei fare delle domande che poi potrei trovare nel compito:
1) dov'è che si verifica una eccezione? nel blocco try o catch? e quando c'è una eccezione che succede al blocco try?
Downloader non è collegato   Rispondi citando
Vecchio 09-06-2005, 13.55.21   #32
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
Eccezioni:
ti dovrei fare delle domande che poi potrei trovare nel compito:
1) dov'è che si verifica una eccezione? nel blocco try o catch? e quando c'è una eccezione che succede al blocco try?
Una eccezione può verificarsi in qualunque punto del codice, basta che ci sia un'istruzione che la lanci

Detto questo, la domanda vuole farti dire che un'eccezione si verifica nel blocco try (che significa: tu "prova" ad eseguire il codice) e viene poi gestita/catturata nel più vicino blocco catch.

Cosa succede nel blocco try?
Bene, vengono ignorate tutte le istruzioni seguenti quella che genera l'eccezione, e si salta al più vicino blocco catch per la gestione dell'eccezione.

Qualche esempio va!

Codice:
try{
   classe1.metodoUno(); //genera l'eccezione MiaException
   classe1.metodoDue();
} catch (MiaException e){
   System.out.println("Ehilà, eccezione!" + e.toString());
}
System.out.println("Fuori dal trycatch");
questo è il caso più semplice, la prima chiamata genera eccezione, l'esecuzione si sposta nel blocco catch e poi NON ritorna indietro, ma prosegue sequenzialmente all'interno del metodo, cioè in questo caso esegue la seconda println.

Codice:
try{
   try{
      classe1.metodoUno(); //genera l'eccezione LevelOneException
      classe1.metodoDue();
   } catch (LevelTwoException e){
      System.out.println("2nd level!" + e.toString());
   } catch (AnotherException e){
      //do nothing
   }
} catch (LevelOneException e){
   System.out.println("1st level!" + e.toString());
}
System.out.println("Fuori dal trycatch");
Fai conto che LevelTwoException erediti da LevelOneException, cioè sia una sua classe figlia.

In questo caso, nel blocco try/catch più interno, viene lanciata l'eccezione di livello 1, ma il catch immediatamente presente gestisce solo quella di livello 2 o sequenzialmente AnotherException, che mettiamo non abbia relazioni con le altre Exception, quindi non viene eseguito; si esce quindi dal blocco try più interno perchè non si è riusciti a gestire l'eccezione, e si analizza il blocco catch del livello try/catch più esterno: questo sì che va bene, poichè catcha proprio l'eccezione che serve a noi (poteva catchare anche una superclasse di LevelOneException, ovvero se LevelOneException ereditava da LevelZeroException, e in questo blocco try si fosse catchata LevelZeroException, sarebbe andato bene cmq: vige la regola solità sul type checking classica di Java )


Come vedi, si tratta proprio di rilancio (throw) delle eccezioni, da un blocco interno ad un altro più esterno. L'operazione che infatti accade quando viene sollevata un'eccezione, è proprio quella di
Codice:
throw new TipoDiEccezione(parametri);
Di più: in un blocco catch puoi fare quello che vuoi: stampare, manipolare variabili, chiamare metodi a piacimento, insomma tutto quello che puoi fare normalmente, e nessuno ti vieta che venga lanciata una nuova eccezione, o che magari tu stesso, per tua decisione, rilanci un'eccezione, magari anche la stessa che hai ricevuto!

Codice:
try{
   classe1.metodoUno(); //genera l'eccezione MiaException
   classe1.metodoDue();
} catch (MiaException e){
   System.out.println("Ma va come sono idiota, sbaglio sempre" + e.toString());
   errori = errori + 1;
throw e;
}
System.out.println("Fuori dal trycatch");
Come vedi, nel blocco catch si stampa semplicemente un avviso per il povero programmatore, si aumenta un counter per tener conto di quanto è idiota il programmatore, e poi si rilancia la stessa eccezione; nel blocco catch in pratica sono state eseguite solo delle operazioni "di servizio", demandando la gestione vera e propria ad un altro blocco catch più esterno.




Avete parlato di blocchi finally?
Dav82 non è collegato   Rispondi citando
Vecchio 09-06-2005, 14.30.17   #33
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Si, dei finally qualcosa so.

aspe che c'ho qualche altra bella domandina.

1) quando nella signature scrivo piu eccezioni le devo scrivere in ordine come poi staranno nel corpo del metodo o no?
2) Definizione java exception:
-inaspettata situazione che se non gestita correttamente terminera il programma.
- inaspettato codice scritto dal programmatore.
Ora visto che il sole mi rimbecillisce c'ho pure bisogno della conferma che la prima risposta è quella esatta.
3) (la metto inglese senno in italiano viene brutta tradotta da me )
What must be done when throwing an integer as an exception ?
-integers cannot be thrown
-declare integers as throwable
-import the exception class
-encapsulate the integer hanlder.

Io c'ho messo la seconda.

Altra cosa: il metodo longSeek() non esiste vero?
Downloader non è collegato   Rispondi citando
Vecchio 09-06-2005, 14.51.22   #34
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
1) quando nella signature scrivo piu eccezioni le devo scrivere in ordine come poi staranno nel corpo del metodo o no?
No, assolutamente, le puoi mettere nell'ordine che vuoi
E devi mettere solo le eccezioni che possono essere lanciate "fuori" dal metodo.
Per spigerami meglio: se nel tuo metodo viene lanciata un'eccezione MiaException, e in tutti i casi in cui viene lanciata ne viene pure fatto un catch, senza rilanciarla, effettivamente il metodo non la lancia, almeno per agli effetti esterni, osservabili da un chiamante.
Ancora di più: sei obbligato a mettere tutte le eccezioni checked, mentre quelle unchecked (ossia quelle che ereditano da RuntimeException) puoi metterle come non metterle: un esempio tipico è la NullPointerException, che può essere segnalata nella signature oppure no, a scelta del programmatore.


Quota:
2) Definizione java exception:
-inaspettata situazione che se non gestita correttamente terminera il programma.
- inaspettato codice scritto dal programmatore.
Ora visto che il sole mi rimbecillisce c'ho pure bisogno della conferma che la prima risposta è quella esatta.
Batte forte il sole, eh?
Sì sì è la prima


Quota:
(la metto inglese senno in italiano viene brutta tradotta da me )
What must be done when throwing an integer as an exception ?
-integers cannot be thrown
-declare integers as throwable
-import the exception class
-encapsulate the integer hanlder.

Io c'ho messo la seconda.
Sbagliato.
La risposta corretta è la prima.
Possono essere "throwati" () solo gli oggetti che ereditano dalla classe Throwable: se guardi nella specifica del linguaggio Java, la classe Integer implementa le Comparable e Serializable, ma NON Throwable.
Non puoi neanche dichiarare la classe Throwable, non ha senso, è già una classe definita da Java, nun ze po ffa!

In C invece si può fare, ma Java è superiore

Quota:
Altra cosa: il metodo longSeek() non esiste vero?
In quale classe?

Ultima modifica di Dav82 : 09-06-2005 alle ore 16.56.32
Dav82 non è collegato   Rispondi citando
Vecchio 09-06-2005, 15.09.54   #35
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Quota:
Originariamente inviato da Dav82
In quale classe?
Trowable.

Io non l'ho trovata ne sul mio libro ne su goooogle, ad una domanda c'è una risposta che parla di sto metodo ma non avendolo mai sentito l'ho considerato sbagliato.
Downloader non è collegato   Rispondi citando
Vecchio 09-06-2005, 15.17.16   #36
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Ragazzo!
Non dirmi che non hai una copia delle Java API!!!

Tragedia! Orrore! Sacrilegio!

Vai subito qua e fai il download della J2SE Documentation, è un ordine!

E' uno zippone (42MB) di file html che contengono il javadoc delle classi fornite da Java.

Cmq nella classe Throwable non c'è questo metodo, né nelle classi da cui eredita (java.lang.Object, la madre di tutte le classi) né nelle interfacce che implementa (java.lang.Serializable)

Scarica lo zippone... è importante averlo e saperlo usare, senza non si può programmare in Java
Dav82 non è collegato   Rispondi citando
Vecchio 09-06-2005, 15.20.36   #37
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
ehm...beh...ecco, con il 56kappino non posso eccedere in downlodamenti troppo pesanti, ma appena vado a scuola non manchero di rallentare la linea sior
Downloader non è collegato   Rispondi citando
Vecchio 09-06-2005, 15.30.42   #38
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Certo che uno che si chiama Downloader e ha la 56k....

Ah ecco, mi ero dimenticato del blocco finally.

Il blocco finally può essere messo nell'architettura try/catch in posizione finale, in modo da avere una serie try/catch/finally, ma non è obbligatorio averlo, come invece per il catch, in quanto è un componente opzionale.
Che fa sto finally?
Viene eseguito COMUNQUE, qualunque cosa accada nell'esecuzione del codice. C'è un'eccezione nel blocco try? Bene, le istruzioni nel blocco finally realavito al blocco try in esame verranno comunque eseguite, anche in presenza di un'eccezione, anche se il blocco catch rimanda da un'altra parte, fa tutto quello che vuole, le istruzioni nel finally vengono eseguite.
C'è una sola eccezione alla regola: se viene chiamata la System.exit() beh, non c'è nulla da fare, il programma termina e il tuo blocco finally te lo scordi

C'è anche un'altra eccezione ma... qui sta al programmatore: non far andare in loop il programma! Anche in questo caso il blocco finally, ovviamente, te lo scordi
Dav82 non è collegato   Rispondi citando
Vecchio 09-06-2005, 18.28.26   #39
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Altre domandine, poi basta fino a stanotte

what should be done when code contains statements that can throw exception?
-Let the operating system handle all exception
-declare the exception in a throw cluase or place the statement in a try/catch/finally block <--
-include code from the handler class to catch the exception
-ingnore all exceptions

what is purpose of try block?
-the try block is used to catch unwnated types of object
-the try block contains code that may generate an exception <--
-the try block throws exceptions in order to test exception handling of the system
-the try block is used to debug code that has not been proven and may contain exception

what is the correct definition of an exception handler?
-the main section of code for the class that executes
-a section of code that contains the instructions concerning what do to with an exception <--
-a section of code in which an exception may occur
-a section of code that executes when a button is clicked

con <-- indico la mia risposta

tnx!
Downloader non è collegato   Rispondi citando
Vecchio 10-06-2005, 02.14.33   #40
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
what should be done when code contains statements that can throw exception?
-Let the operating system handle all exception
-declare the exception in a throw cluase or place the statement in a try/catch/finally block <--
-include code from the handler class to catch the exception
-ingnore all exceptions
Giusto (Y)
Precisazione: questo vale per le eccezioni checked (come le chiama Barbara Liskov), mentre per quelle unchecked non è necessaria questa procedura: si può usare e nessuno dice niente, ma volendo il programmatore può non mettere né il try/catch né l'indicazione nella signature del metodo.

Cosa sono eccezioni checked e unchecked?
Le unchecked sono delle sottoclassi di RuntimeException, ossia delle eccezioni che sono tipiche dell'esecuzioni quale NullPointerException, mentre eccezioni che denotano malfunzionamenti gravi sono normalmente checked, ossia ereditano da Exception ma NON da RuntimeException. Per le eccezioni già definite da Java la scelta è ovviamente fissata, per il resto sta al programmatore agire cum grano salis

Quota:
what is purpose of try block?
-the try block is used to catch unwnated types of object
-the try block contains code that may generate an exception <--
-the try block throws exceptions in order to test exception handling of the system
-the try block is used to debug code that has not been proven and may contain exception
Giusto (Y), come già detto prima

Quota:
what is the correct definition of an exception handler?
-the main section of code for the class that executes
-a section of code that contains the instructions concerning what do to with an exception <--
-a section of code in which an exception may occur
-a section of code that executes when a button is clicked
Giusta anche questa (Y) ovviamente. In sostanza è la definizione di un blocco catch.

Dav82 non è collegato   Rispondi citando
Vecchio 10-06-2005, 10.17.33   #41
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Ok, ora mi metto a studiare le collections.
Downloader non è collegato   Rispondi citando
Vecchio 10-06-2005, 14.43.31   #42
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
Ok, ora mi metto a studiare le collections.
Bravo, sono da conoscere
Dav82 non è collegato   Rispondi citando
Vecchio 10-06-2005, 22.08.16   #43
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Ed ecco puntuali alcune domandine ine ine ine:
The phrase “re-arranging the elements in a collections on some random order” correctly defines which term?
-Sorting <--
-shuffling
-duplication
-adding

Which statements best describes a map?
-A map is a list
-a map is an ordered set of objects
-a map is a set that allows repetitions
-a map is a set of pairs, mapping a key value with an object <--

Which of the following Collections framework storage methods requires the most memory for storage of a group of objects?
-array <--
-linked-list
-tree
-hash table
Downloader non è collegato   Rispondi citando
Vecchio 10-06-2005, 22.18.25   #44
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
Ed ecco puntuali alcune domandine ine ine ine:
The phrase “re-arranging the elements in a collections on some random order” correctly defines which term?
-Sorting <--
-shuffling
-duplication
-adding
Scartando le ultime due che sono palesemente sbagliate, bisogna capir bene cosa vuol dire quel "random": se si intende "riarrangiare e mettere a casaccio, facendo una permutazione senza seguire un determinato criterio" allora la risposta è "shuffling" che vuol dire appunto questo; se invece l'ordine è prestabilito (alfabetico ecc ecc, cmq con una chiave, magari multipla) allora "sorting" è senza dubbio quella da preferire.

Quota:
Which statements best describes a map?
-A map is a list
-a map is an ordered set of objects
-a map is a set that allows repetitions
-a map is a set of pairs, mapping a key value with an object <--
Giusto (Y)

Quota:
Which of the following Collections framework storage methods requires the most memory for storage of a group of objects?
-array <--
-linked-list
-tree
-hash table
Direi anche io, con un array semplicemente usi delle locazioni di memoria contigue, senza dover usare alcun altro sistema di identificazione dei dati; con una linked-list devi avere dei puntatori ai vari elementi, con un albero devi tenere memoria dei figli (e dei padri e magari dei fratelli [siblings]). Per una hash table bisogna definire una tecnica implementativa, cioè una struttura dati, poichè può essere costruita in molti modi, ma sicuramente c'è cmq dell'overhead rispetto ad un semplice array.
Direi quindi che la tua risposta è giusta (Y)

Ops, edit: avevo letto "less" e non "most".

E cmq bisogna sempre vedere cosa si vuole sapere: ci sono molti modi per valutare lo spazio occupato; per esempio se hai da tenere 3 oggetti, con un array di 3 elementi occupi sicuramente meno spazio che con una linked-list di 3 elementi; se però non conosci a priori la quantità di elementi, con una linked-list non sprecherai mai posizioni, in quanto la puoi allungare/accorciare quanto, quando e come vuoi, mentre un array dovrà essere sovradimensionato... diciamo che la domanda, a mio modo di vedere, è mal posta

Ultima modifica di Dav82 : 10-06-2005 alle ore 22.24.52
Dav82 non è collegato   Rispondi citando
Vecchio 10-06-2005, 22.49.50   #45
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Tu su che base hai dato la risposta?

Sei sicuramente più fresco di me sulle collection, così ripasso qualcosa pure io
Dav82 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Problemi Java. Armando@56 Software applicativo 4 19-03-2008 16.27.05
Applicazione java pronta per l'uso juggler Programmazione 1 18-12-2006 22.11.18
[NEWS] Java diventa open source! UG0_BOSS Segnalazioni Web 2 14-11-2006 16.27.14
Java 5.0 upd. 10 / 6 RC Thor Archivio News Web 10 14-11-2006 13.56.18
[LINUX] windows media player per linux sacarde Linux e altri Sistemi Operativi 35 19-08-2006 12.55.31

Orario GMT +2. Ora sono le: 14.36.31.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.