Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
|
|
- Regina Rossini
- 6 anni fa
- Visualizzazioni
Transcript
1 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013
2 Sommario Gestione degli errori Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Lanciare nuove eccezioni - Comando throw Definire nuove eccezioni Esercizi 2
3 Gestione degli errori Generalmente i programmi contengono istruzioni critiche, che possono causare errori che portano alla terminazione improvvisa del programma. Questa anomalia può dipendere sia dal codice scritto (es. quando tentiamo di eseguire una divisione per 0, attribuiamo all indice di un array un valore al di fuori dell intervallo consentito, ecc.) sia dall ambiente hardware (es. disco pieno, connessione di rete non disponibile ) Con altri linguaggi di programmazione per evitare questa eventualità (errori e conseguente terminazione anomala dei programmi) si cerca di prevedere e gestire in modo appropriato (inserendo opportuni controlli if then con conseguente appesantimento del codice) tutte le situazioni che possono produrre errori. 3
4 Gestione degli errori Una tipica istruzione critica (che può causare la terminazione improvvisa del programma) è la lettura di dati da input. Si ricorda che in Java, il dispositivo standard di input è rappresentato dalla variabile (statica) System.in, appartenente alla classe InputStream che fornisce solo il metodo read() (che permette di leggere singoli byte), pertanto per leggere le stringhe si usa la classe BufferedReader, che fornisce il metodo apposito readline() 4
5 Ottengo il programma dove sono evidenziati gli errori Corso di Fondamenti di Informatica1 5
6 Ottengo il programma dove sono evidenziati gli errori Il compilatore ci segnala che potenzialmente nel metodo main sarà generata una eccezione! Corso di Fondamenti di Informatica1 6
7 Ottengo il programma dove sono evidenziati gli errori Corso di Fondamenti di Informatica1 7
8 Ottengo il programma dove sono evidenziati gli errori L istruzione readline() in caso di errore in fase di input solleva una IOException Corso di Fondamenti di Informatica1 8
9 Ottengo il programma dove sono evidenziati gli errori Corso di Fondamenti di Informatica1 9
10 Ottengo il programma dove sono evidenziati gli errori Come suggerito dal compilatore abbiamo aggiunto nella signature del metodo la c throws dello stesso tipo di eccezione lanciata. Tramite questa clasusola si demanda al chiamante la gestione dell eccezione. Corso di Fondamenti di Informatica1 10
11 Istruzione di lettura..se devo leggere un dato numerico è necessario: InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int numero; System.out.print("Immettere un numero : "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 11
12 Istruzione di lettura..se devo leggere un dato numerico è necessario: InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); se la stringa restituita da readline() non corrisponde alla sintassi di un int numero; numero intero Integer.parseInt() solleva una NumberFormatException System.out.print("Immettere un numero : "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 12
13 Il compilatore ci segnala che potenzialmente nel metodo sarà generata anche una ecc formato del dato. 13
14 Il concetto di eccezione Java per ovviare ai possibili errori a cui può andare incontro un programma durante la sua normale esecuzione, adotta un approccio innovativo, introducendo il concetto di eccezione. Una eccezione è un evento anomalo e indesiderato che non consente la normale prosecuzione del programma. Esempi: divisione per 0: java.lang.arithmeticexception indice di un array al di fuori dell intervallo consentito -java.lang.arrayindexoutofboundsexception formato numerico errato java.lang.numberformatexception 14
15 Le eccezioni Una eccezione Java è un oggetto, istanza della classe Throwable o di una sua sottoclasse. Le sottoclassi della classe Throwable sono due: -Exception -Error Object Throwable Error Exception 15
16 Le eccezioni Gli errori sono degli eventi anomali che non dipendono dalla nostra applicazione (es.: memoria insufficiente, problemi alla JVM, problemi con un dispositivo esterno, ecc.) e pertanto non possono essere gestiti; infatti, potenzialmente, qualunque codice del programma potrebbe lanciare questi errori che sarebbero completamente fuori dal controllo del programmatore. Object Throwable Le eccezioni, invece, sono l'opposto degli errori, ovvero, tutti quegli eventi che dipendono dal programma e che possono essere controllati e quindi gestiti. Error Exception 16
17 Categorie di eccezioni Il compilatore Java suddivide le Exception in due categorie: checked (verificate) e unchecked (non verificate). Considera checked (eccezioni verificate), le istanze della classe Exception mentre unchecked (non verificate) le istanze della classe RuntimeException Object Throwable Error Exception RuntimeException Checked exception unchecked exceptions 17
18 Categorie di eccezioni La distinzione tra le eccezioni verificate ( checked exception ) e non verificate (unchecked exception ) è importante in quanto il compilatore Java, per le eccezioni verificate, richiede il requisito dichiara (tramite la clausola throws) o intercetta ( try catch). Tutte le eccezioni che sono sottoclassi dirette o indirette di RunTimeException sono non verificate (es. ArrayIndexOutOfBounds, ArithmeticException). Tutte le classi che ereditano da Exception ma non da RuntimeException sono invece considerate eccezioni verificate. Il compilatore Java controlla ogni chiamata e dichiarazione di metodo per verificare se il metodo può lanciare eccezioni verificate. In caso positivo si assicura che sia soddisfatto Object il requisito dichiara (tramite la clausola throws) o intercetta ( try catch). Le eccezioni verificate devono obbligatoriamente Throwable essere dichiarte (tramite la clausola throws) o intercettate ( try catch)altrimenti non avviene la compilazione, come visto prima. Exception RuntimeException Checked exception unchecked exceptions 18
19 Categorie di eccezioni Le checked, exception rappresentano situazioni anomale in cui il programma puo' incappare, ma facilmente recuperabili. Object Throwable Error Exception RuntimeException Checked exception unchecked exceptions 19
20 Categorie di eccezioni Le unchecked exception possono potenzialmente capitare in qualsiasi programma e in qualsiasi momento dell'esecuzione (puntatori nulli, divisioni per zero, ecc). Sono solitamente imputabili a errori di progettazione o a mancati controlli sull'input dell'utente. Non devono obbligatoriamente essere gestite. Object Throwable Error Exception RuntimeException Checked exception unchecked exceptions 20
21 Alcune tra le più importanti eccezioni Java: NullPointerException extends RunTimeException extends Exception : eccezione che viene lanciata quando si utilizza un puntatore nullo (Addio caro vecchio Segmentation Fault!!!). ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException extends RunTimeException extends Exception : eccezione che viene lanciata quando si legge un array (Vettore o Lista) con indice non corretto (Ancora: addio caro vecchio Segmentation Fault!!!). NumberFormatException extends IllegalArgumentException extends RunTimeException extends Exception : eccezione lanciata dalle Classi Wrapper quando si cerca di convertire in un Numero una stringa non correttamente Formattata. IOException extends exception : eccezione lanciata dalla virtual machine quando una operazione di Input/Output non va a buon fine FileNotFoundException extends IOException extends Exception : eccezione lanciata quando un file non viene trovato.
22 Alcune tra le più importanti eccezioni Java:
23 Categorie di eccezioni Le eccezioni checked vengono controllate dal compilatore (per questo si chiamano così), pertanto il compilatore si aspetta che nel metodo che potenzialmente le genera, ci siano gli appositi costrutti per il controllo e la gestione (corpo del metodo con costrutto try/catch o che, nella signature del metodo, ci sia una clausola throws dello stesso tipo di eccezione lanciata o di una sua superclasse - Se ciò non avviene si incorre in un errore di compilazione! ) Le eccezioni unchecked sono libere da costrizioni programmative: esse possono essere lanciate ovunque e, se non gestite, si propagano nello stack delle chiamate fino a causare la terminazione del programma. Questo approccio rende i programmi Java più robusti e affidabili. 23
24 Gestione delle eccezioni Una eccezione è un oggetto Java e può essere: 1. Propagata verso il metodo chiamante che si occuperà di gestire l eccezione tramite la clausola throws (dichiarazione di propagazione nel metodo) 2. Catturata e gestita tramite il costrutto try/catch 3. Generata da un metodo tramite throw 24
25 Il costrutto try - catch Il blocco try contiene un insieme di istruzioni che potrebbero generare eccezioni, se durante l'esecuzione una delle istruzioni genera un'eccezione, il flusso di esecuzione si interrompe, e la gestione passa al blocco catch incaricato di gestire l'eccezione sollevata. Il blocco catch specifica quale eccezione si desidera gestire e quali istruzioni eseguire. E' possibile rinserire più blocchi catch, in modo da permettere una gestione differenziata delle eccezioni generate dal blocco try. Nell esempio riportato il compilatore prova (try) ad eseguire il blocco di istruzioni dopo la parola chiave try e se incontra un input non corretto lancia l eccezione e si ferma! 25
26 Il costrutto try - catch Un blocco try deve avere almeno un catch o finally; Se sono possibili più tipi di errore ci saranno più blocchi catch. Il corpo del blocco try viene eseguito fino al momento in cui viene sollevata un eccezione da un istruzione; a quel punto viene esaminata ogni clausola catch per vedere se il tipo dell eccezione sollevata coincide con quella trattata dal blocco catch; se esiste il catch corrispondente, viene inizializzato l identificatore (il parametro enamexxx) e vengono eseguite le istruzioni; nessuna altra catch verrà eseguita se non viene trovata nessuna catch adatta, l eccezione è propagata al di fuori del try, ad altri try più esterni se presenti. Se è presente una finally, le sue istruzioni sono eseguite comunque, anche in assenza di eccezioni; la finally è solitamente usata per attuare e garantire la coerenza dello stato degli oggetti (ad esempio, chiudere file)
27 Si noti che l ordine delle catch è rilevante; Es. try { catch(nullpointerexception npe) { catch(ioexcetpion ioe) { catch(exception e) { Si noti che la gestione di IOException deve precedere quella di Exception, dato che IOException è una sottoclasse di Exception. Per la stessa ragione, la gestione di Exception deve per forza comparire in fondo all'elenco.
28 Il costrutto try - catch 28
29 Gestione delle eccezioni:esempio 1 29
30 Gestione delle eccezioni:esempio 30
31 Gestione delle eccezioni:esempio Se durante l'esecuzione diamo un input sbagliato (la stringa tre), viene lanciata dal metodo main un'eccezione che viene intercettata dalla JVM che manda un messaggio e interrompe l esecuzione del programma 31
32 Gestione delle eccezioni:esempio Il messaggio mostra : la stringa di input che ha causato l errore la linea di codice in cui è stata lanciata l eccezione (20) le chiamate dei metodi che hanno portato all eccezione 32
33 Gestione delle eccezioni:esempio Se si inserisce un dato numerico con formato errato viene lanciata l eccezione NumberFormatExceoption (unchecked) 33
34 Gestione delle eccezioni:esempio Il compilatore Java non verifica se un eccezione non verificata (unchecked) viene intercettata o dichiarata. Le eccezioni non verificate possono essere prevenute (evitate) con codice appropriato. 34
35 La gestione delle eccezioni è utile in fase di debugging in quanto Da informazioni sul verificarsi di anomalie Il messaggio mostra : la stringa di input che ha causato l errore la linea di codice in cui è stata lanciata l eccezione (20) le chiamate dei metodi che hanno portato all eccezione 35
36 Per evitare che il programma si interrompa possiamo provare a racchiudere il comando di input in un blocco try-catch: Il messaggio mostra : la stringa di input che ha causato l errore la linea di codice in cui è stata lanciata l eccezione (20) le chiamate dei metodi che hanno portato all eccezione 36
37 37
38 Anche in questo caso il programma si interrompe! Per evitare questo comportamento (il blocco dell esecuzione del programma) dobbiamo fare diversamente! Ad esempio possiamo racchiudere il try-catch in un blocco do while: 38
39 Gestione delle eccezioni:esempio 2 39
40 package provaeccezioni; import java.io.bufferedreader; import java.io.inputstreamreader; Altro esempio di gestione delle eccezioni Si distinguono i diversi tipi di eccezioni Si tenta il recupero di situazioni di errore public class prova6 { public static void main(string args[]) { InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int d=0, a=0; do{ System.out.println("Inserire a <immettere un numero maggiore di 0>: "); try { a=integer.parseint(tastiera.readline()); catch(exception e1) {System.out.println("errore nell'inserimento di a " ); ; System.out.println("numero inserito: " + a); while (a<=0); boolean errore=false; do{ errore=false; System.out.println("Inserire d <immettere un numero maggiore di 0>: "); try { d=integer.parseint(tastiera.readline()); catch(exception e2) {System.out.println("errore nell'inserimento di d" );errore=true;; while (errore); System.out.println("numero inserito: " + d); try { a = 42 / d; System.out.println("valore calcolato :"+a); catch (ArithmeticException e) { System.out.println("Divisione per zero");; 40
41 package provaeccezioni; import java.io.bufferedreader; import java.io.inputstreamreader; public class prova6 { public static void main(string args[]) { InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int d=0; a=0; do{ Importante : la clausola throws non è presente nel main in quanto è presente il costrutto try catch per la gestione delle eccezioni System.out.println("Inserire a <immettere un numero maggiore di 0>: "); try { a=integer.parseint(tastiera.readline()); catch(exception e1) {System.out.println("errore nell'inserimento di a " ); ; System.out.println("numero inserito: " + a); while (a<=0); booleanerrore=false; do{ errore=false; System.out.println("Inserire d <immettere un numero maggiore di 0>: "); try { d=integer.parseint(tastiera.readline()); catch(exception e2) {System.out.println("errore nell'inserimento di d" );errore=true;; while (errore); System.out.println("numero inserito: " + d); try { a = 42 / d; System.out.println("valore calcolato :"+a); catch (ArithmeticException e) { System.out.println("Divisione per zero");; 41
42 Costrutto try catch - finally Il costrutto generale per la gestione delle eccezioni ha la seguente forma: try { istruzione1(); istruzione2();... catch(exception1 e1) { // gestione dell'eventuale problema nato nel blocco try catch(exception2 e2) { // gestione dell'eventuale problema nato nel blocco try finally { // codice da eseguire comunque al termine del blocco try Parte normale!! Anche più di una!! Facoltativa!! La clausola finally contiene un blocco di istruzioni da eseguire comunque dopo il blocco try, sia nel caso esso sia terminato senza problemi, sia nel caso abbia sollevato qualche eccezione. 42
43 L istruzione throw Fino ad ora abbiamo visto (throws ) che permette di delegare al metodo chiamante la gestione delle eccezioni che potrebbero essere sollevate, oppure (try - catch ) che permette di gestire le eccezioni che potrebbero essere sollevate in un metodo all interno del metodo stesso Ora invece vedremo come si opera se si desidera generare un'eccezione in un metodo e in che modo sia possibile creare eccezioni personalizzate per gestire situazioni anomale nei propri programmi. Utilizzeremo come esempio un metodo statico che calcola il fattoriale. Il metodo crea una nuova eccezione nel caso che il parametro di input sia negativo! 43
44 L istruzione throw Le eccezioni possono essere generate con l istruzione throw Solitamente un istruzione throw è inclusa in un istruzione if che valuta una condizione per verificare se deve essere sollevata l eccezione 44
45 L istruzione throw 45
46 L istruzione throw package provaeccezioni; import java.io.*; public class prova7 { static int fattoriale(int n) throws Exception { if(n<0) throw new Exception("Il parametro deve essere int f = 1; for (int i=1;i<=n;i++) f = f * i; positivo"); return f; Importante non confondere: la clausola throws che dichiara che un metodo rilancia all esterno un eccezione l istruzione throw che solleva un eccezione 46
47 Altro esempio package provaeccezioni; import java.io.*; public class prova3 { public static void main(string[] args) throws Exception { InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int x=0; do{ System.out.print("Immettere un numero maggiore di 0: "); try { x=integer.parseint(tastiera.readline()); catch(exception e) {System.out.println("errore " ); while (x<=0); System.out.println("numero inserito: " + x); if (x==5) throw new Exception("Impossibile usare il valore 5"); 47
48 Esempio Per generare un eccezione: prima si crea l oggetto eccezione da lanciare poi lo si lancia con l istruzione throw public int readinteger(string s) throws NumberFormatException, NumberTooBigException { int x = Integer.parseInt(s); if (x>100) throw new NumberTooBigException(); return x;
49 package provaeccezioni; import java.io.*; public class prova3 { public static void main(string[] args) throws Exception { InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int x=0; do{ System.out.print("Immettere un numero maggiore di 0: "); try { x=integer.parseint(tastiera.readline()); catch(exception e) {System.out.println("errore " ); while (x<=0); System.out.println("numero inserito: " + x); if (x==5) throw new Exception("Impossibile usare il valore 5"); l istruzione throw genera un eccezione 49
50 Eccezioni definite dall utente Nonostante l enorme varietà di eccezioni già presenti in Java, il programmatore può facilmente crearne di proprie, qualora desideri segnalare condizioni di eccezione tipiche di un proprio programma. Per creare una nuova eccezione è sufficiente dichiarare una sottoclasse di Exception (o di una qualunque altra eccezione esistente), e ridefinire i costruttori. Exception(): Crea un'eccezione. Exception(String message): Crea un'eccezione specificando un messaggio diagnostico. Esempio di eccezione personalizzata: public class MiaEccezione extends Exception{ MiaEccezione (String messaggio) { super (messaggio); Questa classe si deve trovare in un file chiamato come la classe, ovvero MiaEccezione.java". 50
51 Come sollevare la nuova eccezione import java.io.*; public class UsaMiaEccezione { public static void main(string[] args) throws MiaEccezione, IOException { /* lista delle sottoclassi di Exception che possono essere lanciate dal metodo */ final int Min = 10, Max = 30; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Introduci un numero tra "+Min +" e " +Max+ " inclusi"); int valore = Integer.parseInt(br.readLine()); if (valore < Min valore > Max) throw new MiaEccezione ("il valore non è nell'intervallo"); System.out.println("Non è stata lanciata l'eccezione"); 51
52 Come sollevare la nuova eccezione import java.io.*; public class UsaMiaEccezione { public static void main(string[] args) throws MiaEccezione, IOException { /* lista delle sottoclassi di Exception che possono essere lanciate dal metodo */ final int Min = 10, Max = 30; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Introduci un numero tra "+Min +" e " +Max+ " inclusi"); int valore = Integer.parseInt(br.readLine()); if (valore < Min valore > Max) throw new MiaEccezione ("il valore non è nell'intervallo"); System.out.println("Non è stata lanciata l'eccezione"); Quindi con la clausola throws avviso il compilatore che questo metodo potrebbe lanciare questa tipologia di eccezione Nel codice verifico se è il caso o no di lanciare l eccezione in caso affermativo creo l oggetto eccezione da lanciare (new..) e con l'istruzione throw lo lancio. 52
53 Esercizio Data la classe Tempo di seguito riportata, modificarla in modo tale che se il metodo assegnatempo riceve parametri errati, generi un'eccezione. 53
54 Classe Tempo public class Tempo { protected int ore, minuti, secondi; static public char separatore = ':'; public Tempo () { // costruttore ore = minuti = secondi = 0; 54
55 Classe Tempo public Tempo (int ora, int minuto, int secondo) { // costruttore s(); assegnatempo (ora, minuto, secondo); public int assegnatempo (int ora, int minuto, int secondo){ if (ora >= 0 && ora < 24 && minuto >= 0 && minuto < 60 && secondo >= 0 && secondo < 60 ){ ore = ora; minuti = minuto; secondi = secondo; return 0; else return -1; public int leggiora () { return ore; 55
56 Classe Tempo public int leggiminuti () { return minuti; public int leggisecondi () { return secondi; public void aggiungiore (int numore) { ore = ore + numore; while (ore > 23) ore = ore - 24; public void visualizza (boolean ritornoacapo) { System.out.print("" + ore + separatore + minuti + separatore); 56
57 Classe Tempo /* La stringa vuota ("") come argomento di System.out.print serve per forzare l'interpretazione di + come operatore di concatenazione di stringhe */ if (ritornoacapo) System.out.println (secondi); else System.out.print (secondi); 57
58 Soluzione Estendiamo Tempo.java in modo che se il metodo assegnatempo riceve parametri errati, genera un'eccezione. public class TempoConEccezioni extends Tempo{ public TempoConEccezioni() { super(); public TempoConEccezioni (int ora, int minuto, int secondo) { super (ora, minuto, secondo); public int assegnatempo (int ora, int minuto, int secondo){ if (super.assegnatempo(ora,minuto,secondo) == 0) return 0; else throw new TempoException("Errore in assegnatempo"); 58
59 Soluzione Definiamo la classe di eccezioni TempoException: public class TempoException extends RuntimeException{ public TempoException(){ super(); public TempoException(String msg){ super(msg); 59
60 Soluzione Proviamo la nuova classe con un semplice programma: public class UsaTempoConEccezioni{ public static void main(string [] args) { try { Tempo t = new TempoConEccezioni (99,99,99); t.visualizza(true); catch (TempoException e) { System.out.println ("Errore:" + e); 60
61 Esercizio Modificare la classe Conto Corrente che nel caso l importo da prelevare superi il saldo lanci una eccezione di IllegalArgumentException abbinata al seguente messaggio: ("somma non disponibile"); senza bloccare l esecuzione del programma 61
62 Soluzione public class ContoCorrente{ public static double preleva(double somma,double disp){ if(somma>disp) { throw new IllegalArgumentException("somma non disponibile"); disp=disp-somma; return disp; public static void main(string[]args){ double disponibile = ; //denaro disponibile in CC Scanner sc= new Scanner(System.in); System.out.println("Somma disponibile in cc:" + disponibile); int termina = 1; 62
63 Soluzione while(termina!=0) {System.out.println("Quale somma vuoi prelevare?"); double sommadaprelevare= sc.nextdouble(); try {disponibile = preleva(sommadaprelevare, disponibile); catch(illegalargumentexception) {System.out.println("Problema: "+ e +"prelevamento massimo: " + disponibile); System.out.println("Somma disponibile in cc:" + disponibile); System.out.println("Digita 1 per continuare, 0 per uscire"); termina = sc.nextint(); 63
64 Esercizio Definire una classe cc che ha la funzione di una Calcolatrice che nel caso venga impostata una operazione non valida lanci una eccezione adeguata. Provare a gestire le eccezioni in modo che il programma non termini in modo anomalo 64
65 public class cc { public cc(){ public double dividi( double op1, double op2) throws Exception { if( op2 == 0) {throw new Exception("Impossibile dividere per 0."); return op1/op2; 65
66 public class Calcolatrice { public static void main(string[] args) { try { cc calc = new cc(); double op1 = 3.2; double op2 = 0.0; double ris_divisione = calc.dividi( op1, op2 ); System.out.println(op1+" diviso "+op2+" fa: "+ris_divisione); catch(exception e) { System.out.println("La calcolatrice ha riportato una operazione non valida."+e); 66
67 67
68 68
69 Cosa abbiamo imparato? Cosa sono le eccezioni:eventi anomali ed indesiderati che non permettono la normale prosecuzione del programma. Le categorie di eccezioni e la differenza tra eccezioni: checked: controllate dal compilatore, sono tutte le sottoclassi della classe Exception e la loro gestione è obbligatoria; unchecked: libere da costrizioni programmative, sono tutte le sottoclassi della classe RuntimeException e la loro gestione è opzionale. Possono essere generate ovunque. L eccezione può essere: Propagata verso il metodo chiamante tramite la 69
70 dichiarazione nel metodo throws; Catturata e gestita tramite il costrutto try/catch; Generata da un metodo tramite throw. Come si utilizza la clausola throws: delega la gestione delle eccezioni che potrebbero essere sollevate da un metodo al metodo chiamante. Che cos è il costrutto try/catch: gestisce le eccezioni che potrebbero essere sollevate in un metodo all interno del metodo stesso. - try contiene un insieme di istruzioni che possono generare un eccezione; - catch specifica quale eccezione si desidera gestire e quale istruzioni eseguire. E possibile ripetere più volte il blocco catch. 70
71 La clausola finally contiene un blocco di istruzioni da eseguire comunque dopo il blocco try. Come si genera un eccezione tramite l istruzione throw. 71
72 Questionario 1) Che cos è un eccezione? E un metodo particolare in Java; E un evento imprevisto, anomalo e indesiderato che non consente la normale prosecuzione del programma; E evento un previsto e desiderato che si utilizza in alcuni tipi di programmi; E una classe particolare in Java. 2)A cosa serve l istruzione throws? throws serve per gestire un eccezione unchecked; throws serve a dichiarare che in questo metodo potrebbero essere sollevate delle eccezioni di cui ne viene demandata la gestione al chiamante del metodo; throws serve a gestire le eccezioni che potrebbero essere sollevate in un metodo all interno del metodo stesso; throws serve a generare un eccezione. 72
73 3)Che cos è un eccezione in Java? Una classe; Un oggetto; Un metodo; Un package. 4)A cosa servono le istruzioni try/carch? try/catch servono per gestire un eccezione unchecked; try/catch servono a dichiarare che in questo metodo potrebbero essere sollevate delle eccezioni di cui ne viene demandata la gestione al chiamante del metodo; try/catch serve a gestire le eccezioni che potrebbero essere sollevate in un metodo all interno del metodo stesso; try/catch serve a generare un eccezione 5) ) Le eccezioni in Java, di quale istanza di classi fanno parte? delle classi java.lang.exception e sue sottoclassi e di java.lang.runtimeexception e sue sottoclassi; 73
74 delle classi java.io.exception e sue sottoclassi delle classi java.error.exceptione e sue sottoclassi e di java.error.runtimeexception e sue sottoclassi; delle classi java.io.exceptione e sue sottoclassi e di java.io.runtimeexception e sue sottoclassi 6) Cosa significano le parole checked e unchecked e a quale classe fanno riferimento? checked sono eccezioni controllate che sono istanze della classe java.lang.exception, mentre unchecked sono eccezioni non controllate e sono istanze della classe java.lang.runtimeexception; checked sono eccezioni non controllate che sono istanze della classe java.lang.exception, mentre unchecked sono eccezioni controllate e sono istanze della classe java.lang.runtimeexception; checked sono eccezioni controllate che sono istanze della classe java.lang.runtimeexception, mentre unchecked sono eccezioni non controllate e sono istanze della classe java.lang.exception;. 74
75 checked sono eccezioni non controllate che sono istanze della classe java.lang.runtimeexception, mentre unchecked sono eccezioni controllate e sono istanze della classe java.lang.exception 7)A cosa serve l istruzione finally dopo un blocco try? il blocco finally è obbligatorio e contiene istruzioni che vengono comunque eseguite sia che sia stata che non sia stata sollevata un eccezione; il blocco finally è facoltativo e contiene istruzioni che vengono comunque eseguite sia che sia stata che non sia stata sollevata un eccezione; il blocco finally è facoltativo e contiene istruzioni che vengono eseguite solo se sia stata sollevata un eccezione; il blocco finally è facoltativo e contiene istruzioni che vengono eseguite solo se non sia stata sollevata un eccezione. 75
76 8)Qual è la differenza tra le eccezioni checked e unchecked? Non c è nessuna differenza sono entrambe libere da costrizioni programmative; Non c è nessuna differenza sono entrambe controllate dal compilatore; Le eccezioni checked vengono controllate dal compilatore, mentre le eccezioni unchecked sono libere da costrizioni programmative; Le eccezioni checked sono libere da costrizioni programmative, mentre le eccezioni unchecked vengono controllate dal compilatore. 9)Quale dei seguenti costrutti per la gestione delle eccezioni è giusto? try{ istruzione1(); istruzione2();... catch(exception1 e1) { // gestione dell'eventuale problema nato nel blocco try catch(exception2 e2) { // gestione dell'eventuale problema nato nel blocco try; 76
77 finally{ // codice da eseguire comunque al termine del blocco try try{ istruzione1(); istruzione2();... catch(exception1 e1) { // gestione dell'eventuale problema nato nel blocco try catch(exception2 e2) { // gestione dell'eventuale problema nato nel blocco try; try{ istruzione1(); istruzione2();... try{ istruzione1(); istruzione2();... catch(exception1 e1) { // gestione dell'eventuale problema nato nel blocco try; 77
78 try{ istruzione1(); istruzione2();... try{ istruzione1(); istruzione2();... catch(exception1 e1) { // gestione dell'eventuale problema nato nel blocco try catch(exception2 e2) { // gestione dell'eventuale problema nato nel blocco try; 10)Quale dei seguenti non è un modo per gestire le eccezioni? Un eccezione può essere catturata e gestita all interno di un metodo tramite il costrutto try/catch; Un eccezione può essere generata all interno di un metodo tramite il costrutto throw; Un eccezione può essere generata all interno di un metodo tramite il costrutto throws; 78
79 Un eccezione può essere propagata verso il metodo chiamante che può catturare e gestire l eccezione o continuare la propagazione tramite la definizione del metodo throws. 11) Nel main, per gestire le eccezioni, quale tipo di costrutto viene utilizzato? try/catch; throws; throw; java.io.ioexception. 12)Quale classe si trova in cima alla gerarchia delle eccezioni? Throwable; Error; Exception; Runtime Exception. 79
80 13)Cosa succede se un eccezione non viene intercettata? Nulla, il programma viene eseguito ugualmente ; Si verifica un interruzione anomala del programma; Un eccezione viene sempre intercettata dalla JVM; Il programma viene eseguito ma in maniera errata. 14)Quali sono le due dirette sottoclassi di Throwable? Exception e RuntimeException; Error e Exception; Error e RuntimeException; checked e unchecked. 15)Quali dei seguenti modi non può generare un eccezione? Un eccezione può essere generata esplicitamente con l istruzione throws; Un eccezione può essere generata da un errore nella JVM; Un eccezione può essere generata da un errore nel programma; Un eccezione può essere generata esplicitamente con l istruzione throw. 80
Gestione delle eccezioni in Java
Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel
DettagliGestione delle Eccezioni
Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un
DettagliConcetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla
DettagliGestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint
parseint parseint showinputdialog JOptionPanenull null throw BankAccount IllegalArgumentException amount public class BankAccount { public void withdraw(double amount) { if (balance < amount) { // Parametro
DettagliGestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)
Gestione di errori e situazioni eccezionali Gestione delle eccezioni Una procedura (utente o di libreria) deve poter segnalare l impossibilità di produrre un risultato significativo o la propria terminazione
DettagliGestione delle eccezioni in Java
Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliELEMENTI DI PROGETTAZIONE SOFTWARE
ELEMENTI DI PROGETTAZIONE SOFTWARE Massimiliano Redolfi Lezione 7: la fortezza Perché un sistema sia robusto ogni suo componente deve essere robusto. Una semplice metodo public class Main { public static
Dettagli56789:;<( !"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$( .()"+)&%/&+%0,%/+"1+,22,3("'&% 425(&'6&%7(%)8(09//"%:;!<=>%?&)@"'&%7&00&%&AA&3("'(%
!"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$(!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 56789:;
Dettagli/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }
import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO
DettagliOperazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le
DettagliEccezioni. Gestione degli errori. Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. Approccio tradizionale: Problemi
Eccezioni Eccezioni per codificare errori lancio di eccezioni Eccezioni user defined checked e unchecked Gestione di eccezioni cattura di eccezioni Gestione degli errori Approccio tradizionale: codifica
DettagliEccezioni 1 CASO: SENTIRE E GESTIRE UN ALLARME. Prof. Enrico Denti Università di Bologna A.A. 2012/2013 1 SITUAZIONI CRITICHE IL CONCETTO DI ECCEZIONE
Università degli Studi di Bologna Scuola di Ingegneria e Architettura Eccezioni Corso di Laurea in Ingegneria Informatica Anno accademico 2012/2013 Prof. ENRICO DENTI Dipartimento di Informatica Scienza
DettagliOperazioni di scrittura e lettura con periferici in linguaggio Java
Operazioni di scrittura e lettura con periferici in linguaggio Java Flussi logici (stream) di output Operazione di scrittura a monitor con uso di stream (flusso logico) di output RAM System.out.println
DettagliCifratura simmetrica
Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave
DettagliCorso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.
Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura
DettagliEsonero del corso di Programmazione a Oggetti
Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio
DettagliFlussi, lettori e scrittori
Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,
DettagliEsercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }
Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano
DettagliParcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento
Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate
DettagliUnità B3 Strutture di controllo
(A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliJav@Lab Il linguaggio Java I file sequenziali
Jav@Lab Il linguaggio Java I file sequenziali Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno
DettagliJava Native Interface Appunti
Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per
DettagliParte II: Reti di calcolatori Lezione 12
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e
Dettagli7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:
7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)
DettagliEsercitazioni Ingegneria del So2ware 3 - Programmazione Java Excep<ons, I/O
Esercitazioni Ingegneria del So2ware 3 - Programmazione Java Excep
DettagliLinguaggi di programmazione II Silvio Imbòsilim@libero.it
Linguaggi di programmazione II Silvio Imbòsilim@libero.it Obiettivo del corso Divulgare la conoscenza di aspetti piùevoluti di programmazione in linguaggio Java, di metodologie di programmazione ad oggetti
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
DettagliSistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni
Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal
Dettagli13. Chain of Responsibility
Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire
DettagliLaboratorio di Informatica Lezione 4
Laboratorio di Informatica Lezione 4 Cristian Consonni 28 ottobre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 4 1 / 42 Outline 1 Canali standard 2 Input da tastiera 3 Output 4 Esercizi (parte
Dettagli(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP
(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP D (FKR&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: il server attende una connessione da parte del client (su MDYDQHW6HUYHU6RFNHW), usa la
DettagliEsercizi classi e array
Esercizi classi e array Raffaella Brighi, a.a. 2006/07 Corso di Algoritmi e programmazione. A.A. 2006-07 CdL Operatore Informatico Giuridico. Progetto DataSet Realizzare una classe DataSet per la gestione
DettagliChat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.
Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto
DettagliLa gestione di file e flussi in Java: note introduttive
Università degli Studi di Palermo Facoltà di Ingegneria La gestione di file e flussi in Java: note introduttive Edoardo Ardizzone & Riccardo Rizzo Appunti per il corso di Fondamenti di Informatica A.A.
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliParte II: Reti di calcolatori Lezione 10
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione
DettagliLAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)
Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it
DettagliArchitettura Client-Server
Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server
Dettagliintroduzione alla programmazione in Java classi, oggetti ed altro
introduzione alla programmazione in Java classi, oggetti ed altro nomi file ed estensioni file.java: sorgenti Java creati con editor javac.exe: compilatore Java es.: per compilare il sorgente in pippo.java
Dettagli789:;<:' .&+/"0&12%34%5&66+,("%3787%% %"+&%88$77%9%8:$:7%% ;<'&12%8%=,+>"%3787 % % % %"+&%88$77%9%8:$:7%
!"#$"%&'()')*+'!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 789:;"%3787 % % % %"+&%88$77%9%8:$:7%?("'(%)"'"%'&0% 0,6"+,@"+("%1(%A'5"+=,B/,%C+,'1&$%
DettagliInput e Output in Java
Input e Output in Java Stream Redirecting Scomposizione dell input Uso di file Set di caratteri 1 Inserimento dati e test Riconsideriamo la versione iniziale della classe DataSet usata per illustrare le
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
DettagliProgrammazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012
Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Esercizio ContoCorrente Creare una classe ContoCorrente
DettagliQUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio
QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre
Dettagli20 - Input/Output su File
20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Dettagli3. La sintassi di Java
pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer
DettagliR. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone
Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:
DettagliRicorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.
Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla
DettagliProssime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1
Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio
DettagliLinguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
DettagliVBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliEsercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.
Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double
DettagliUn flusso (stream) è una astrazione che produce e/o consuma informazioni.
I programmi Java eseguono l I/O mediante i flussi. Un flusso (stream) è una astrazione che produce e/o consuma informazioni. Ogni flusso è collegato ad un dispositivo fisico dal sistema di I/O di java.
DettagliINFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.
INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002 Esercizio 4) import fiji.io.simplereader; class Programma{ public static
DettagliCompute engine generici in RMI
Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliCorso di Reti di Calcolatori. java.net.url
Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (2 a parte) paolo.trunfio@deis.unical.it 1 java.net.url URL (String spec) crea un oggetto URL
DettagliApplicazioni TCP/IP. Maurizio Cozzetto. Brescia 20 agosto 2014
Applicazioni TCP/IP Maurizio Cozzetto Brescia 20 agosto 2014 Un po' di teoria Ricordiamo che un'applicazione distribuita e un'applicazione composta da piu programmi (almeno 2) posti in esecuzione su macchine
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Dettagli(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP
(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP D /LQH&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: i inviano al server pacchetti (vuoti) che vengono interpretati dal server come richiesta
DettagliOrganizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()
Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno
DettagliProgrammare con le Socket TCP in java. 2: Application Layer 1
Programmare con le Socket TCP in java 2: Application Layer 1 Il Client contatta il server Il Server: Il processo server è sempre attivo in attesa di connessioni (demone) Crea una socket per accettare la
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
DettagliIntroduzione a Java. Jacopo Torrini. Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software. torrini@dsi.unifi.
Introduzione a Java Jacopo Torrini Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software torrini@dsi.unifi.it Introduzione Il linguaggio Java è un linguaggio di alto livello con
DettagliMagiCum S.r.l. Progetto Inno-School
MagiCum S.r.l. Progetto Inno-School Area Sviluppo Web Autore: Alessio Bernardo Revisione: 1 Data: 23/05/13 Titolo: Sviluppo piattaforma e-learning e sviluppo siti web File: Documentazione tecnica Sito:
DettagliProgrammazione Java (Applicazioni e Applet )
Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.
DettagliProva d Esame 07.04.2006 Compito A
DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "Ciao"; protected int n; public General() { n = 1; public
DettagliProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete
ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto
DettagliFile, flussi e pacchetto java.io
File, flussi e pacchetto java.io Formato binario e formato di testo I dati sono memorizzati nei files in due formati: testo (successione di caratteri) binario (successione di bytes) Ad es. numero 12345
DettagliSviluppo Applicazioni Mobile Lezione 13. Dr. Paolo Casoto, Ph.D - 2012
+ Sviluppo Applicazioni Mobile Lezione 13 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide
DettagliProva d Esame 07.04.2006 Compito B
DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public
DettagliIntroduzione all'uso di JAVA. Come si scrive, compila, esegue una applicazione Java con uso di IDE JCreator?
Introduzione all'uso di JAVA Che cosa è Java? 1. Un architettura interpiattaforma ed un linguaggio di programmazione OO con cambio di paradigma rispetto alla tradizionale impostazione procedurale. 2. Funziona
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliEsercizi e soluzioni
Esercizi e soluzioni Esercizi e soluzioni Esercizi modulo 1 Esercizio 1.a) HelloWorld Digitare, salvare, compilare ed eseguire il programma HelloWorld. Consigliamo al lettore di eseguire questo esercizio
DettagliIl linguaggio C# Eventi ed eccezioni
Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliNascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
DettagliInput/Output in Java
Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile
DettagliUnità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
Dettagli15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
15 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
DettagliProva Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse
Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina
DettagliSAPIENZA Università di Roma, Facoltà di Ingegneria
SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. E.Casalicchio A.A. 2008/09 QUARTA PARTE: Soluzioni Esercizi 13-23 Soluzione
DettagliLaboratorio di Programmazione di Rete Corso A
Laboratorio di Programmazione di Rete Corso A Anno Accademico 2005-2006 Docente: Laura Ricci Assistente: Paolo Mori INFORMAZIONI UTILI Orario del Corso: Lunedì 9.00-11.00 Laboratorio Gruppo A 11.00-13.00
DettagliSpecifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
DettagliIngegneria del Software
Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi
DettagliDATI IDENTIFICATIVI DEL PROGETTO
DATI IDENTIFICATIVI DEL PROGETTO N. VERSIONE 1.0 ITEM Integrazione con Java DATA DI USCITA PREVISTA DESCRIZIONE Creazione di DLL per integrazioni con Java Pag. 1 di 9 Descrizione dei requisiti Sezione
Dettagli