Capitolo 11 Gestione File ed Eccezioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 11 Gestione File ed Eccezioni"

Transcript

1 Capitolo 11 Gestione File ed Eccezioni Obiettivi del capitolo Lettura e scrittura file ASCII File testo e binari 1 Fondamenti di Informatica Fondamenti di Informatica 2 Lettura di file testo Scrivere file testo Uso della classe Scanner Per leggere un file da disco, costruire un oggetto FileReader Poi con l oggetto FileReader costruire un oggetto Scanner Costruire un oggetto PrintWriter PrintWriter out = new PrintWriter("output.txt"); FileReader reader = new FileReader("input.txt"); Scanner in = new Scanner(reader); Metodi utilizzabili della classe Scanner per leggere dati da un file next, nextline, nextint, e nextdouble Fondamenti di Informatica 3 Se il file esiste viene svuotato e vengono scritti i nuovi dati Se il file non esiste ne viene creato uno nuovo vuoto Fondamenti di Informatica 4

2 Scrivere file testo Esempio Metodi per scrivere in un oggetto PrintWriter: print, println out.println(29.95); out.println(new Rectangle(5, 10, 15, 25)); out.println("hello, World!"); Il file deve essere chiuso al termine della scrittura out.close(); Altrimenti c è il rischio di perdere dati Leggere tutte le righe di in file e copiarle in un secondo file, precedute dal numero di riga Esempio input file: Mary had a little lamb Whose fleece was white as snow. And everywhere that Mary went, The lamb was sure to go! Fondamenti di Informatica 5 Fondamenti di Informatica 6 Esempio File di output prodotto: /* 1 */ Mary had a little lamb /* 2 */ Whose fleece was white as snow. /* 3 */ And everywhere that Mary went, /* 4 */ The lamb was sure to go! Il programma può essere utilizzato per numerare le righe di un file sorgente Java Fondamenti di Informatica 7 LineNumberer.java 01: import java.io.filereader; 02: import java.io.ioexception; 03: import java.io.printwriter; 04: import java.util.scanner; 05: 06: public class LineNumberer 07: 08: public static void main(string[] args) 09: 10: Scanner console = new Scanner(System.in); 11: System.out.print("Input file: "); 12: String inputfilename = console.next(); 13: System.out.print("Output file: "); 14: String outputfilename = console.next(); 15: 16: try 17: Fondamenti di Informatica 8

3 LineNumberer.java 18: FileReader reader = new FileReader(inputFileName); 19: Scanner in = new Scanner(reader); 20: PrintWriter out = new PrintWriter(outputFileName); 21: int linenumber = 1; 22: 23: while (in.hasnextline()) 24: 25: String line = in.nextline(); 26: out.println("/* " + linenumber + " */ " + line); 27: linenumber++; 28: 29: 30: out.close(); 31: 32: catch (IOException exception) 33: LineNumberer.java 34: System.out.println("Error processing file:" + exception); 35: 36: 37: Fondamenti di Informatica 9 Fondamenti di Informatica 10 Verifica Risposte 1. Cosa succede se si passa lo stesso nome di file di input e output al programma LineNumberer? 2. Cosa succede se viene fornito il nome di un file di input inesistente a LineNumberer? 1. Quando l oggetto PrintWriter viene creato, il file di output è svuotato. Quindi, avendo lo stesso nome, viene svuotato il file di ingresso. Il ciclo while non viene neppure eseguito. 2. Il programma cattura l eccezione FileNotFoundException, stampa il messaggio di erroe e termina. Fondamenti di Informatica 11 Fondamenti di Informatica 12

4 File Dialog Boxes File Dialog Boxes JFileChooser chooser = new JFileChooser(); FileReader in = null; if (chooser.showopendialog(null) == JFileChooser.APPROVE_OPTION) File selectedfile = chooser.getselectedfile(); reader = new FileReader(selectedFile);... Fondamenti di Informatica 13 Fondamenti di Informatica 14 Formati testo e binario I dati vengono memorizzati in due modi: Text Binary Text Format Formato leggibile Sequenza di caratteri Il numero 12,345 memorizzato come sequenza di caratteri'1' '2' '3' '4' '5' Si utilizzano i metodi delle classi Reader e Writer per elaborare input e output Lettura: FileReader reader = new FileReader("input.txt"); Scrittura FileWriter writer = new FileWriter("output.txt"); Fondamenti di Informatica 15 Fondamenti di Informatica 16

5 Binary Format Dati sono rappresentati da bytes Il numero 12,345 memorizzato come una sequenza di 4 bytes Si utilizzano i metodi delle classi InputStream and OutputStream Permette una gestione più compatta e d efficiente Lettura: Binary Format FileInputStream inputstream = new FileInputStream("input.bin"); Scrittura: FileOutputStream outputstream = new FileOutputStream("output.bin"); Fondamenti di Informatica 17 Fondamenti di Informatica 18 Lettura di un singolo carattere da un file Text Format Metodo read della classe Reader restituisce: il successivo carattere come un intero [int] o l intero -1 come fine file [EOF] Reader reader =...; int next = reader.read(); char c; if (next!= -1) c = (char) next; Nota -1 è l interpretazione in complemento a due di un insieme di bit tutti posti ad 1 Lettura di un singolo carattere da un file Binary Format Method read della classe InputStream per leggere un singolo byte restituisce: Il successivo byte come un intero [int] l intero -1 alla fine del file InputStream in =...; int next = in.read(); byte b; if (next!= -1) b = (byte) next; Fondamenti di Informatica 19 Fondamenti di Informatica 20

6 Formati Text e Binary Formati Text e Binary Metodo write per scrivere un singolo byte o carattere read e write sono gli unici metodi di lettura e scrittura forniti dalle classi di input e output dei file Java stream package:ogni classe ha una responsabilità ben circoscritta Compito della classe FileInputStream: interagire con file ed estrarre byte Per leggere numeri, stringhe, o altri oggetti, si combina questa classe con altre Fondamenti di Informatica 21 Fondamenti di Informatica 22 Verifica Risposte 3. Dovete leggere un file immagine che contiene il valori di colore di ciascun pixel. Utilizzate Reader o InputStream? 4. Perché i metodi delle classi Reader e InputStream restituiscono un int e non un char o byte? 3. L immagine è memorizzato in formato binario, provate ad editare un file immagien con un editor di testi. Quindi si usa InputStream. 4. EOF viene individuato da -1. Se fosse restituito char o byte, non sarebbe stato possibile definire un carattere speciale diverso da un valore lecito. Fondamenti di Informatica 23 Fondamenti di Informatica 24

7 Obiettivi del Capitolo Imparare a gettare le eccezioni Essere in grado di progettare una tua classe di eccezioni Capire la differenza tra eccezioni controllate e eccezioni non controllate Imparare come catturare le eccezioni Sapere quando e come catturare una eccezione Gestione degli Errori Approccio tradizionale: Il Metodo ritorna un codice d errore Problema: Dimenticare di verificare la presenza di un messaggio d errore La mancata notifica può passare inosservata Problema: La chiamata del metodo può non essere in grado di dire nulla circa il fallimento Anche il programma deve fallire e lasciare il suo esecutore preoccupato Molte chiamate dei metodi dovrebbero essere verificate Fondamenti di Informatica 25 Fondamenti di Informatica 26 Gestione degli Errori Lanciare Eccezioni Invece di programmare per successi x.dosomething() Dovresti sempre programmare per fallimenti: if (!x.dosomething()) return false; Eccezioni: Non possono essere trascurate Manda direttamente a una gestione delle eccezioni del metodo fallito Lancia un oggetto eccezione per segnalare una condizione eccezionale Esempio: IllegalArgumentException: illegal parameter value IllegalArgumentException exception = new IllegalArgumentException("Amount exceeds balance"); throw exception; Fondamenti di Informatica 27 Fondamenti di Informatica 28

8 Lanciare Eccezioni Non è necessario memorizzare l oggetto eccezione in una variabile: throw new IllegalArgumentException("Amount exceeds balance"); Quando viene lanciata una eccezione il metodo termina immediatamente L esecuzione continua con un gestore di eccezioni Esempio public class BankAccount public void withdraw(double amount) if (amount > balance) IllegalArgumentException exception = new IllegalArgumentException("Amount exceeds balance"); throw exception; balance = balance - amount;... Fondamenti di Informatica 29 Fondamenti di Informatica 30 Gerarchia delle Classi di Eccezioni Sintassi 11.1: Lanciare una Eccezione throw exceptionobject; Example: throw new IllegalArgumentException(); Purpose: To throw an exception and transfer control to a handler for this exception type Fondamenti di Informatica 31 Fondamenti di Informatica 32

9 Verifica Risposte 1. Come si può modificare il metodo deposit per essere certi che il saldo non diventi mai negativo? 2. Supponi di aver costruito un nuovo oggetto Bank Account con saldo zero e poi chiamare il metodo withdraw(10). Qual è il valore di balance alla fine? 1. Lancia una eccezione se la somma che viene depositata è minore di zero. 2. Il saldo è ancora zero perchè l ultima istruzione del metodo withdraw non è mai stata eseguita. Fondamenti di Informatica 33 Fondamenti di Informatica 34 Eccezioni Controllate e Non Controllate Due tipi di eccezioni: Controllate Il compilatore controlla che non vengano ignorate Dipendono da circostanze esterne che il programmatore non può impedire La maggior parte avvegono quando si lavora con input e output Per esempio, IOException Eccezioni Controllate e Non Controllate Due tipi di Eccezioni: Non Controllate: Estendono la classe RuntimeException or Error Sono colpa del programmatore Esempi di eccezioni di Runtime: NumberFormatException IllegalArgumentException NullPointerException Fondamenti di Informatica 35 Esempio di errore: OutOfMemoryError Fondamenti di Informatica 36

10 Eccezioni Controllate e Non Controllate Le Categorie non sono perfette: Scanner.nextInt Lancia la non controllata InputMismatchException Il Programmatore non può impedire all utente di inserire dati errati Questa scelta rende la classe facile da usare per programmatori inesperti Si incontrano eccezioni controllate quandi si programma con file e flussi Fondamenti di Informatica 37 Eccezioni Controllate e Non Controllate Per esempio, usa uno Scanner per leggere un file String filename =...; FileReader reader = new FileReader(filename); Scanner in = new Scanner(reader); Ma, il costruttore FileReader può lanciare una FileNotFoundException Fondamenti di Informatica 38 Eccezioni Controllate e Non Controllate Due scelte: Gestire l eccezione Dire al compilatore che si vuole che il metodo termini quando occorre un eccezione Usa lo specificatore throws così il metodo può lanciare una eccezione controllata public void read(string filename) throws FileNotFoundException FileReader reader = new FileReader(filename); Scanner in = new Scanner(reader);... Fondamenti di Informatica 39 Eccezioni Controllate e Non Controllate Per eccezioni multiple: public void read(string filename) throws IOException, ClassNotFoundException Tieni in mente l eredità gerarchica: Se il metodo può lanciare IOException e FileNotFoundException, usa solo IOException Meglio dichiarare le eccezioni che gestirle incompetentemente Fondamenti di Informatica 40

11 Sintassi 11.2: Specificare Eccezioni accessspecifier returntype methodname(parametertype parametername,...) throws ExceptionClass, ExceptionClass,... Example: public void read(bufferedreader in) throws IOException Purpose: To indicate the checked exceptions that this method can throw Verifica 3. Supponi che il metodo chiami il costruttore FileReader e il metodo read della classe FileReader,il quale può lanciare una IOException. Quale specificazione throws bisogna usare? 4. Perchè l eccezione NullPointerException non è controllata? Fondamenti di Informatica 41 Fondamenti di Informatica 42 Risposte Catturare Eccezioni 3. La specificazione lancia IOException è sufficente perchè FileNotFoundException è una sottoclasse di IOException. 4. Perchè i programmatori devono semplicemente controllare i puntatori null invece di tentare a gestire una NullPointerException. Si installa un gestore di eccezioni con l enunciato try/catch Il blocco try contiene l enunciato che potrebbe causare una eccezione La clausola catch contiene il gestore per un tipo di eccezioni Fondamenti di Informatica 43 Fondamenti di Informatica 44

12 Catturare Eccezioni Catturare Eccezioni Esempio: Try String filename =...; FileReader reader = new FileReader(filename); Scanner in = new Scanner(reader); String input = in.next(); int value = Integer.parseInt(input);... catch (IOException exception) exception.printstacktrace(); catch (NumberFormatException exception) System.out.println("Input was not a number"); Fondamenti di Informatica 45 L enunciato nel blocco try viene eseguito Se non occorre nessuna eccezione, la clausola catch viene saltata Se occorre l eccezione del tipo corrispondente, l esecuzione salta alla clausola catch Se occorre un altro tipo di eccezione, viene lanciata finchè non viene catturata da un altro blocco try Fondamenti di Informatica 46 Catturare Eccezioni catch (IOException exception) block exception contiene il riferimento all oggetto eccezione che viene lanciato catch può analizzare l oggetto per cercare maggiori dettagli exception.printstacktrace(): tabula la catena di chiamate di metodo che portano all eccezione Fondamenti di Informatica 47 Sintassi 11.3: Blocco Try Generale try statement statement... catch (ExceptionClass exceptionobject) statement statement... catch (ExceptionClass exceptionobject) statement statement Fondamenti di Informatica 48

13 Sintassi 15.3: Blocco Try Generale Example: try System.out.println("How old are you?"); int age = in.nextint(); System.out.println("Next year, you'll be " + (age + 1)); catch (InputMismatchException exception) exception.printstacktrace(); Purpose: To execute one or more statements that may generate exceptions. If an exception occurs and it matches one of the catch clauses, execute the first one that matches. If no exception occurs, or an exception is thrown that doesn't match any catch clause, then skip the catch clauses. Fondamenti di Informatica 49 Verifica 5. Supponi che il file con il nome indicato esista ma sia vuoto. Traccia il flusso di esecuzione del blocco try di questo paragrafo. 6. C è differenza tra catturare eccezioni controllate e catturare eccezioni non controllate? Fondamenti di Informatica 50 Risposte 5. Il costruttore FileReader agisce con successo e l oggetto viene costruito. Successivamente l invocazione in.next() lancia una NoSuchElementException, e il blocco try viene interrotto. Nessuna delle clausole catch corrisponde, così nessuna viene eseguita.se nessuno dei metodi presenti nella catena di invocazione il programma termina. Risposte 6. No,entrambi I tipi di eccezioni si catturano allo stesso modo, come puoi vedere nel codice esempio a pagina 558. Ricorda che IOException è una eccezione controllata e NumberFormatException è una eccezione non controllata. Fondamenti di Informatica 51 Fondamenti di Informatica 52

14 La Clausola finally La Clausola finally L eccezione termina il metodo corrente Pericolo: Può saltare codice essenziale Esempio: reader = new FileReader(filename); Scanner in = new Scanner(reader); readdata(in); reader.close(); // May never get here Deve eseguire reader.close() anche se occorre l eccezione Usa la clausola finally per codice che deve essere eseguito "no matter what" Fondamenti di Informatica 53 Fondamenti di Informatica 54 La clausola finally Eseguita quando il blocco try è portato a termine in uno dei 3 modi seguenti: Dopo l ultimo enunciato del blocco try Dopo l ultimo enunciato della clausola catch, se il blocco try lancia una eccezione Quando nel blocco try è lanciata una eccezione che non viene catturata Raccomandazione: non mischiare le clausole catch e finally nello stesso blocco try try statement statement... finally statement statement... Sintassi 15.4: La clausola finally Fondamenti di Informatica 55 Fondamenti di Informatica 56

15 Sintassi 15.4: La clausola finally Example: FileReader reader = new FileReader(filename); try readdata(reader); finally reader.close(); Verifica 7. Perchè la variabile reader era dichiarata fuori dal blocco try? 8. Supponi che il file con il nome dato non esista. Traccia il flusso di esecuzione del segmento di codice in questa sezione. Proposta: Per assicurare che gli enunciati della clausola finally siano eseguiti o meno, l enunciato nel blocco try lancia una eccezione Fondamenti di Informatica 57 Fondamenti di Informatica 58 Risposte Progettare i vostri tipi di eccezione 7. Se fosse stata dichiarata all interno del blocco try, il suo scopo sarebbe stato esteso alla fine del blocco try, e la clausola catch non potrebbe essere chiusa. 8. Il costruttore FileReader lancia una eccezione. La clausola finally è eseguita. Finchè reader è null, la chiamata a close non è eseguita. Poi, una clausola catch che sostituisce FileNotFoundException è localizzata. Se non esiste, il programma Fondamenti termina. di Informatica 59 Fondamenti di Informatica 60 Puoi progettare il tuo tipo di eccezione come sottoclassi di Exception o RuntimeException if (amount > balance) throw new InsufficientFundsException( "withdrawal of " + amount + " exceeds balance of + balance);

16 Progettare i vostri tipi di eccezione Progettare i vostri tipi di eccezione Fare una eccezione non controllata il programmatore potrebbe vietarla prima della chiamata di getbalance Estendi RuntimeException o una delle sue sottoclassi Fornire due costruttori 1. Costruttore di Default 2. Un costruttore che accetti una stringa che descriva la ragione dell eccezione Fondamenti di Informatica 61 public class InsufficientFundsException extends RuntimeException public InsufficientFundsException() public InsufficientFundsException(String message) super(message); Fondamenti di Informatica 62 Verifica Risposte 9. Qual è la proposta della chiamata super(message) nel secondo costruttore InsufficientFundsException? 10. Supponi di leggere I dati di bank account da un file. Contrariamente alle aspettative, il prossimo valore inserito non è un double. Decidi di implementare un BadDataException. Quale classe di eccezione dovresti estendere? 9. Passare il messaggio di eccezione della stringa alla superclasse RuntimeException. 10. Exception e IOException sono entrame buone scelte, perchè l errore è oltre il controllo del programmatore, potrebbe essere una eccezione riscontrabile, così sarebbe errato estendere RuntimeException. Fondamenti di Informatica 63 Fondamenti di Informatica 64

17 Un programma completo Un programma completo Programma Chiedere all utente il nome del file Ci si aspetta che il file contenga dei valori La prima riga del file contiene tutti numeri di valori Le righe rimanenti contengono i dati Tipici file di input: Fondamenti di Informatica 66 Fondamenti di Informatica 65 Cosa potremmo sbagliare? Il file potrebbe non esistere Il file potrebbe avere dati in formato sbagliato Chi può trovare gli errori? Il costruttore FileReader può lanciare un eccezione quando il file non esiste I metodi che elaborano l input necessitano di lanciare eccezioni se trovano errori nei dati del formato Un programma completo Un programma completo Quale eccezione può essere lanciata? FileNotFoundException può essere lanciara dal costruttore FileReader IOException può essere lanciata dal metodo close del FileReader BadDataException, una classe di eccezione abitualmente controllata Chi rimedia al difetto che l eccezione riporta? Solo il metodo main del programma DataSetTester interagisce con l utente Cattura le eccezioni Stampa appropriati messaggi di errore Da all utente un altro tentativo per inserire il valore corretto Fondamenti di Informatica 67 Fondamenti di Informatica 68

18 File DataSetTester.java File DataSetTester.java 01: import java.io.filenotfoundexception; 02: import java.io.ioexception; 03: import java.util.scanner; 04: 05: public class DataSetTester 06: 07: public static void main(string[] args) 08: 09: Scanner in = new Scanner(System.in); 10: DataSetReader reader = new DataSetReader(); 11: 12: boolean done = false; 13: while (!done) 14: 15: try 16: Fondamenti di Informatica 69 17: System.out.println("Please enter the file name: "); 18: String filename = in.next(); 19: 20: double[] data = reader.readfile(filename); 21: double sum = 0; 22: for (double d : data) sum = sum + d; 23: System.out.println("The sum is " + sum); 24: done = true; 25: 26: catch (FileNotFoundException exception) 27: 28: System.out.println("File not found."); 29: 30: catch (BadDataException exception) 31: 32: System.out.println ("Bad data: " + exception.getmessage()); Fondamenti di Informatica 70 File DataSetTester.java 33: 34: catch (IOException exception) 35: 36: exception.printstacktrace(); 37: 38: 39: 40: Il metodo readfile della classe DataSetReader Costruisce l oggetto Scanner Chiama il metodo readdata Completamente indifferente ad ogni eccezione Fondamenti di Informatica 71 Fondamenti di Informatica 72

19 Il metodo readfile della classe DataSetReader Se c è un problema con un input file, semplicemente passa l eccezione al chiamante. public double[] readfile(string filename) throws IOException, BadDataException // FileNotFoundException is an IOException FileReader reader = new FileReader(filename); try Scanner in = new Scanner(reader); readdata(in); Fondamenti di Informatica 73 Il metodo readfile della classe DataSetReader finally reader.close(); return data; Fondamenti di Informatica 74 Il metodo readfile della classe DataSetReader Il metodo readfile della classe DataSetReader Legge il numero dei valori Costruisce un array Chiama readvalue per ogni valore private void readdata(scanner in) throws BadDataException if (!in.hasnextint()) throw new BadDataException("Length expected"); int numberofvalues = in.nextint(); data = new double[numberofvalues]; for (int i = 0; i < numberofvalues; i++) readvalue(in, i); Controllo per due potenziali errori 1. Il File potrebbe non partire con un integer 2. Il File potrebbe avere un dato in più dopo aver letto tutti i valori 3. Non fare alcun tentativo per catturare le eccezioni if (in.hasnext()) throw new BadDataException("End of file expected"); Fondamenti di Informatica 75 Fondamenti di Informatica 76

20 Il metodo readfile della classe DataSetReader private void readvalue(scanner in, int i) throws BadDataException if (!in.hasnextdouble()) throw new BadDataException("Data value expected"); data[i] = in.nextdouble(); Scenario 1. DataSetTester.main chiama DataSetReader.readFile 2. readfile chiama readdata 3. readdata chiama readvalue 4. readvalue non trova il valore atteso e lancia BadDataException 5. readvalue non ha modificatori per l eccezione e termina Fondamenti di Informatica 77 Fondamenti di Informatica 78 Scenario 6. readdata non ha modificatori per l eccezione e termina 7. readfile non ha modificatori per l eccezione e termina dopo l esecuzione della clausola finally 8. DataSetTester.main ha il modificatore per BadDataException; il modificatore stampa un messaggio, all utente viene data un altra opportunità per inserire il nome del file Fondamenti di Informatica 79 DataSetReader.java 01: import java.io.filereader; 02: import java.io.ioexception; 03: import java.util.scanner; 04: 05: /** 06: Reads a data set from a file. The file must have // the format 07: numberofvalues 08: value1 09: value2 10:... 11: */ 12: public class DataSetReader 13: Fondamenti di Informatica 80

21 DataSetReader.java 14: /** 15: Reads a data set. filename the name of the file holding the data the data in the file 18: */ 19: public double[] readfile(string filename) 20: throws IOException, BadDataException 21: 22: FileReader reader = new FileReader(filename); 23: try 24: 25: Scanner in = new Scanner(reader); 26: readdata(in); 27: 28: finally 29: 30: reader.close(); 31: Fondamenti di Informatica 81 DataSetReader.java 32: return data; 33: 34: 35: /** 36: Reads all data. in the scanner that scans the data 38: */ 39: private void readdata(scanner in) throws BadDataException 40: 41: if (!in.hasnextint()) 42: throw new BadDataException("Length expected"); 43: int numberofvalues = in.nextint(); 44: data = new double[numberofvalues]; 45: 46: for (int i = 0; i < numberofvalues; i++) 47: readvalue(in, i); Fondamenti di Informatica 82 DataSetReader.java 48: 49: if (in.hasnext()) 50: throw new BadDataException("End of file expected"); 51: 52: 53: /** 54: Reads one data value. in the scanner that scans the data i the position of the value to read 57: */ 58: private void readvalue(scanner in, int i) throws BadDataException 59: DataSetReader.java 60: if (!in.hasnextdouble()) 61: throw new BadDataException("Data value expected"); 62: data[i] = in.nextdouble(); 63: 64: 65: private double[] data; 66: Fondamenti di Informatica 83 Fondamenti di Informatica 84

22 Verifica Risposte 11. Perchè il metodo DataSetReader.readFile non trova nessuna eccezione? 12. Supponi che l utente abbia specificato un file esistente ma vuoto. Descrivi il flusso di esecuzione. 11. Non è in grado di fare nulla con loro. La classe DataSetReader è una classe riutilizzabile che potrebbe essere usata per sistemi con differenti linguaggi e differenti interfacce utente. Così non può esere innestata in un dialogo con il programma dell utente. Fondamenti di Informatica 85 Fondamenti di Informatica 86 Risposte 12. DataSetTester.main chiama DataSetReader.readFile, che chiama readdata. La chiamata in.hasnextint() ritornafalse, e readdata lancia una BadDataException. Il metodo readfile non lo trova, così torna al main, dove è catturato. Fondamenti di Informatica 87

Gestione delle Eccezioni

Gestione delle Eccezioni Gestione delle Eccezioni C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi

Dettagli

Capitolo 11 Ingresso/uscita e gestione delle eccezioni. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Capitolo 11 Ingresso/uscita e gestione delle eccezioni. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Capitolo 11 Ingresso/uscita e gestione delle eccezioni Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Essere in grado di leggere e scrivere file di

Dettagli

Dal libro di Savitch & Carrano

Dal libro di Savitch & Carrano Dal libro di Savitch & Carrano Un eccezione (exception) è un oggetto che segnala l accadere di un evento anomalo durante l esecuzione di un metodo. Il processo di creazione di quest oggetto (cioè di generazione

Dettagli

Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. lancio di eccezioni. checked e unchecked. cattura di eccezioni

Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. lancio di eccezioni. checked e unchecked. cattura di eccezioni 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

Dettagli

Gestione delle eccezioni

Gestione 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

Dettagli

Eccezioni. Gestione degli errori. Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. Approccio tradizionale: Problemi

Eccezioni. 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

Dettagli

Informatica I. Ingegneria Medica. Prof. Diego Salamon

Informatica I. Ingegneria Medica. Prof. Diego Salamon Informatica I Ingegneria Medica Prof. Diego Salamon Gestione I/O Prof. Diego Salamon Introduzione Nella creazione e gestione del software è necessario interagire con entità esterne a quelle del programma

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni 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

Dettagli

C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo

C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo File e Flussi C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari

Dettagli

Gestione delle eccezioni

Gestione delle eccezioni Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi

Dettagli

Progettazione By Contract

Progettazione By Contract Progettazione By Contract Documentazione di progetto Contratti per i metodi Correttezza dell implementazione invarianti per le classi Verifica asserzioni Eccezioni Progettazione By Contract Contratti per

Dettagli

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Gestione 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

Dettagli

Capitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2

Capitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2 Capitolo 13 Gestione delle eccezioni 1 Figura 1 La gerarchia delle classi di eccezioni 2 Figura 2 Eccezioni controllate e non controllate 3 File PurseTest.java import javax.swing.joptionpane; import java.io.ioexception;

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Eccezioni Le eccezioni sono situazioni di errore che possono essere generate e gestite dal vostro programma a run-time Quando viene

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Gestione delle eccezioni

Gestione delle eccezioni Gestione delle eccezioni Le eccezioni sono un meccanismo per gestire situazioni anomale durante l esecuzione dei metodi. La gestione delle eccezioni deve garantire i seguenti principi: - le eccezioni non

Dettagli

Gestione delle eccezioni in Java

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

Dettagli

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi. Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma

Dettagli

Laboratorio di reti I

Laboratorio di reti I Laboratorio di reti I Stefano Brocchi brocchi@dsi.unifi.it 13 ottobre, 2009 Stefano Brocchi Laboratorio di reti I 13 ottobre, 2009 1 / 27 Introduzione Obiettivi del corso Aspetti di programmazione Java

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono

Dettagli

Gestione delle eccezioni

Gestione delle eccezioni Gestione delle eccezioni Casi eccezionali vs Casi previsti Eccezioni Eccezioni controllate e non controllate Gestione delle eccezioni try-catch-finally Esempi 1 Individuazione e ripristino Nei programmi

Dettagli

Gestione delle eccezioni. 10/12/2004 Laboratorio di Programmazione - Luca Tesei 1

Gestione delle eccezioni. 10/12/2004 Laboratorio di Programmazione - Luca Tesei 1 Gestione delle eccezioni 10/12/2004 Laboratorio di Programmazione - Luca Tesei 1 Individuazione e ripristino Nei programmi possono verificarsi errori e situazioni impreviste Esempi: Si cerca di accedere

Dettagli

File, flussi e pacchetto java.io

File, 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

Dettagli

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 ed ed Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario ed scrittura su in Java ed ed di testo Scrivere stringhe su di testo

Dettagli

Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo

Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo Gestione degli Errori in Java Emilio Di Giacomo e Walter Didimo Errori in fase di esecuzione Un programma può contenere o generare errori in fase di esecuzione, di varia natura: errori di robustezza: dovuti

Dettagli

Insegnamento di Laboratorio di algoritmi e strutture dati

Insegnamento di Laboratorio di algoritmi e strutture dati Insegnamento di Laboratorio di algoritmi e strutture dati Roberto Posenato ver. 0.6, 31/01/2008 1 / 25 Si comincia... 1 Esigenza... Definizione Tipi di eccezioni Sollevare eccezioni Gestire le eccezioni

Dettagli

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte) INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java File Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce

Dettagli

Gestire le eccezioni. Lezione XI

Gestire le eccezioni. Lezione XI Gestire le eccezioni Lezione XI Scopo della lezione Studiare il meccanismo di gestione delle eccezioni Implementare nuove eccezioni IX-B.2 Tipi di errori Errori rilevati in fase di compilazione: errori

Dettagli

Eccezioni in Java A. FERRARI

Eccezioni in Java A. FERRARI Eccezioni in Java A. FERRARI Eccezioni Una eccezione è un oggetto che descrive una situazione anomala o una situazione di errore Le eccezioni vengono «lanciate» (throw) in un punto del programma e possono

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di

Dettagli

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Sfortunatamente, una tale classe non esiste

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di

Dettagli

Il linguaggio Java. Le eccezioni

Il linguaggio Java. Le eccezioni Il linguaggio Java Le eccezioni Eccezioni Definizione: evento eccezionale che si verifica durante l esecuzione di un programma e che ne altera il normale flusso di esecuzione Situazioni che causano eccezioni

Dettagli

Esercitazione 2. Java:

Esercitazione 2. Java: Esercitazione 2 Java: Eccezioni @andreamocci Casi Eccezionali (1) /* * Produce un numero complesso a partire dalla sua forma polare */ public static Complex frompolarform(double abs, double phase) { /*

Dettagli

Le eccezioni in Java

Le eccezioni in Java Le eccezioni in Java G. Grossi 17 gennaio 2007 Indice 1 Le eccezioni Gerarchia eccezioni Le eccezioni Object Throwable Error Exception Controllate Non controllate RunTimeException Indice Le eccezioni 1

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Individuazione e ripristino

Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Individuazione e ripristino Gestione delle eccezioni Individuazione e ripristino Casi eccezionali vs Casi previsti Eccezioni Eccezioni controllate e non controllate Gestione delle eccezioni try-catch-finally Esempi Nei programmi

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando

Dettagli

Gestione delle Eccezioni

Gestione 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

Dettagli

Eccezioni predefinite

Eccezioni predefinite Eccezioni predefinite Java mette a disposizione molte eccezioni già confezionate, che descrivono la maggioranza dei problemi che possono verificarsi a run-time. Ognuna di queste è una classe. Tutte queste

Dettagli

Corso sul linguaggio Java

Corso 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

Dettagli

Individuazione e ripristino. Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Eccezioni. Segnalazione di errore

Individuazione e ripristino. Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Eccezioni. Segnalazione di errore Individuazione e ripristino Gestione delle eccezioni Nei programmi possono verificarsi errori e situazioni impreviste Esempi: Si cerca di accedere tramite il metodo get a un elemento di un oggetto ArrayList

Dettagli

Java fornisce una ricca gerarchia di classi di eccezioni: Object

Java fornisce una ricca gerarchia di classi di eccezioni: Object Java fornisce una ricca gerarchia di classi di eccezioni: Object +----Throwable +----Error +----VirtualMachineError... +----Exception +----RuntimeException +----ArithmeticException +----IndexOutOfBoundsException

Dettagli

Eccezioni. Corso di Tecniche di Programmazione

Eccezioni. Corso di Tecniche di Programmazione Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Eccezioni Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e

Dettagli

LETTURA DI DATI DA INPUT

LETTURA DI DATI DA INPUT LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream FileDescriptor InputStream SequenceInputStream ByteArrayInputStream

Dettagli

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione Domanda n. 1 Corso: Fondamenti di Informatica (Canale 5) a.a. 2016-17 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab10 Argomento: Algoritmi e complessita'

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Eccezioni: Gestione dei Flussi versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

A. Ferrari Stream e File

A. Ferrari Stream e File Stream e File Java la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Programmazione in Java (3) Le eccezioni Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di R o m a Anno

Dettagli

Gestione delle Eccezioni

Gestione delle Eccezioni Gestione delle Eccezioni Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni 1 Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista

Dettagli

Programmazione a Oggetti. Eccezioni

Programmazione a Oggetti. Eccezioni Programmazione a Oggetti Eccezioni Sommario Eccezioni Generalità, motivazioni Eccezioni in Java Sollevamento Cattura Trattamento Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

A. Ferrari Java: Stream e File

A. Ferrari Java: Stream e File Java: Stream e File la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

Dettagli

LE ECCEZIONI. Dott. Riccardo Zese.

LE ECCEZIONI. Dott. Riccardo Zese. LE ECCEZIONI Dott. Riccardo Zese riccardo.zese@unife.it Che cosa sono le eccezioni In un programma si possono generare situazioni critiche che provocano errori. Non è però accettabile, soprattutto in applicazioni

Dettagli

GESTIONE DEGLI ERRORI. Il gestore delle eccezioni

GESTIONE DEGLI ERRORI. Il gestore delle eccezioni Il gestore delle eccezioni GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. L approccio classico consiste nell inserire controlli (if else..) per cercare

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java : Conclusioni versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A2 I file binari 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Flussi, lettori e scrittori

Flussi, 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,

Dettagli

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite

Dettagli

Fornisce una interfaccia unificata per un insieme di interfacce di un sottosistema, rendendo più facile l uso di quest ultimo.

Fornisce una interfaccia unificata per un insieme di interfacce di un sottosistema, rendendo più facile l uso di quest ultimo. Facade 73 10. Facade (GoF pag. 185) 10.1. Descrizione Fornisce una interfaccia unificata per un insieme di interfacce di un sottosistema, rendendo più facile l uso di quest ultimo. 10.2. Esempio Un applicativo

Dettagli

Informatica. Prof. A. Longheu. Input e Output

Informatica. Prof. A. Longheu. Input e Output Informatica Prof. A. Longheu Input e Output 1 Il package java.io Il package java.io definisce i concetti base per gestire l I/O da qualsiasi sorgente e verso qualsiasi destinazione. L obiettivo è fornire

Dettagli

Oggetti. Oggetti e classi. Utilizzo di classi. Classe

Oggetti. Oggetti e classi. Utilizzo di classi. Classe Oggetti Oggetti e classi Oggetto: entità che può essere manipolata nel programma mediante l invocazione di metodi Black box dotato di:! Interfaccia pubblica " Metodi visibili " Comportamento dell oggetto!

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002

ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002 Organizzazione della lezione 8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Le eccezioni come

Dettagli

8. Java: Eccezioni e Thread

8. Java: Eccezioni e Thread 8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Le eccezioni motivazioni

Dettagli

Eccezioni ed asserzioni

Eccezioni ed asserzioni Eccezioni ed asserzioni I concetti relativi ad eccezioni, errori ed asserzioni e le relative gestioni, permettono allo sviluppatore di scrivere del software robusto, ovvero che riesca a funzionare correttamente,

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata Iterazioni Anno Accademico 2003/04 Docente modulo 1: Lo statement while while (condition) statement; Ripete l esecuzione di statement fino a che la condizione e` verificata while (balance < targetbalance)

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Gestione delle eccezioni in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Gestione delle eccezioni in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 15 - Gestione delle eccezioni

Dettagli

La paninoteca. Mi resta da scrivere solo costo()

La paninoteca. Mi resta da scrivere solo costo() La paninoteca Mi resta da scrivere solo costo() La paninoteca Usiamo l ereditarietà per definire dei Panini particolari Ci sono alcuni tipi di pane Estendendo Panino scrivo meno codice Nell esempio eredito

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi 16. Stream di I/O Esempio. Visualizza sul monitor il contenuto di un file di caratteri. int i; while ((i

Dettagli

Gestione degli errori

Gestione degli errori 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 - lezione 11 - Gestione delle eccezioni

Dettagli

FileInputStream read() read(byte[]) readint() DataInputStream FileInputStream EOFException

FileInputStream read() read(byte[]) readint() DataInputStream FileInputStream EOFException ESERCITAZIONE 9 I/O Esercizio 1 Lettura da file binario Se gli interi letti appartengono a [-5;5] scrittura su un altro file binario Altrimenti sollevare una eccezione la quale stampa a video un messaggio

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti 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

Dettagli

Il linguaggio Java. Le eccezioni

Il linguaggio Java. Le eccezioni Il linguaggio Java Le eccezioni Shit happens! Gli errori nei programmi si verificano Quello che è realmente importante è: cosa succede dopo che un errore si è verificato? TIGA 2 Eccezione Un'eccezione

Dettagli

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe

Dettagli

Variabili e Metodi di classe Interfacce e Package File in Java

Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe definisce un

Dettagli

Cifratura simmetrica

Cifratura 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

Dettagli

Lavorare con i File e gestire le Eccezioni

Lavorare con i File e gestire le Eccezioni Lavorare con i File e gestire le Eccezioni Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Due modi per memorizzare i dati Formato testo Dati rappresentati come sequenze di caratteri 12345 memorizzato

Dettagli

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 18,19 15,19/11/2013

Dettagli

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Tipi di dato F n o d n am ent en ali

Tipi di dato F n o d n am ent en ali Tipi di dato Fondamentali Tipi numerici int: interi, senza parte frazionaria 1, -4, 0 double: numeri in virgola mobile (precisione doppia) 0.5, -3.11111, 4.3E24, 1E-14 Tipi numerici Una computazione su

Dettagli

La 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 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.

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

III Appello - 4 giugno 2009

III Appello - 4 giugno 2009 Corso di laurea in Comunicazione digitale Fondamenti di architettura e programmazione AA 2008/09 III Appello - 4 giugno 2009 Cognome Matricola Nome 1 (4 punti) Scrivete il programma Java, Esercizio, che

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe

Dettagli

Lavorare con i File e gestire le Eccezioni

Lavorare con i File e gestire le Eccezioni Due modi per memorizzare i dati Lavorare con i File e gestire le Eccezioni Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Formato testo Dati rappresentati come sequenze di caratteri 12345 memorizzato

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 21 Riassunto

Dettagli

OOP: L13: Eccezioni e loro trattamento in Java

OOP: L13: Eccezioni e loro trattamento in Java Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica A. Acc. 2005/2006 Programmazione Orientata agli Oggetti OOP: L13: Eccezioni e loro trattamento

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file

Dettagli