GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.

Slides:



Advertisements
Presentazioni simili
Java base V: La gestione delle Eccezioni
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Recupero debito quarto anno Primo incontro
Universita di Camerino
12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Eccezioni Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Fisica computazionale I - 21 OPERATORI. Fisica computazionale I - 22 OGGETTI Gli oggetti sono strutture di dati che possono essere create, attraverso.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
Scomposizione di stringhe
Soluzione Esercizio - Classe Vettore
AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
Programmazione II: Tecniche Avanzate. (A.A. 1999/2000) - Lezione 6 1 Estensione di classi: il Contratto INTERFACCIA E REALIZZAZIONE Che cosa realizza una.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
AA2003/04 © M.A. Alberti Programmazione Eccezioni 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
Selezione (=scelta) con “if-else”
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Eccezioni.
Concetti di informatica e fondamenti di Java, 4 ed.Apogeo ©2007 Capitolo 11 Ingresso/uscita e gestione delle eccezioni Cay S. Horstmann Concetti di informatica.
Lezione XII Laboratorio di Programmazione. Eccezioni Per la gestione di operazioni che possono non andare a buon fine il C++ mette a disposizione un sistema.
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
Introduzione a:. Nella prima parte di questo corso si vedranno i CONCETTI di: CLASSE (programma) METODO (Algoritmi e dati) CONCETTI CLASSICI DI PROGRAMMAZIONE.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
11/11/2004Laboratorio di Programmazione - Luca Tesei1 Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di.
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A GESTIONE DEL TESTO.
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
Programmazione concorrente
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
1 Applet ed HTML Fondamenti di Informatica Corso D.
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Astrazione procedurale ed eccezioni
Lezione n° 07 - Esercitazione
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
1 novembre I nomi in Java F. Bombi 1 novembre 2002.
Argomenti della lezione
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Eccezioni Metodi parziali Eccezioni: Usi e Metodi parziali Eccezioni: rimuovere i requires Eccezioni: rimuovere i requires Eccezioni: definizione, sollevamento,
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
1 Progettazione dettagliata di un Tipo di Dato Astratto: l’ambiente di metodi.
10/12/2004Laboratorio di Programmazione - Luca Tesei1 Gestione delle eccezioni.
1 Progettare un Tipo di Dato Astratto. 2 Scelte di Progetto (astrazione) 4 Caratteristiche degli oggetti –Modificabilità 4 Scelta delle operazioni –Realizzare.
1 Astrazione procedurale ed Eccezioni. 2 Procedure stand alone 4 indipendenti da specifici oggetti 4 come si realizzano in Java –metodi statici definiti.
Ese 3 (del 31 Marzo 2004). Testo Dare rappresentazione e realizzazione dei metodi della seguente classe QueueWithPriority. Nella risposta, non riportare.
LIP: 22 Marzo 2005 Eccezioni. Eccezioni-Richiami Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Ese 1 e 3 (del 6 Aprile 2005). Primo Ese Si identifichino gli errori che il compilatore segnalerebbe per il seguente programma Tipi Legami tra dichiarazioni.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione puo’
Introduzione alle Classi e agli Oggetti in Java 1.
Eccezioni in Java. Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo.
Transcript della presentazione:

GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli (if… else..) per cercare di intercettare a priori le situazioni critiche Ma è un modo di procedere spesso insoddisfacente non è facile prevedere tutte le situazioni che potrebbero produrre lerrore gestire lerrore spesso significa solo stampare a video un messaggio.

ECCEZIONI Java introduce il concetto di eccezione anziché tentare di prevedere le situa- zioni di errore, si tenta di eseguire loperazione in un blocco controllato se si produce un errore, loperazione solleva uneccezione leccezione viene catturata dal blocco entro cui loperazione è eseguita… … e può essere gestita nel modo più appropriato.

ECCEZIONI try { /* operazione critica che può sollevare eccezioni */ } catch (Exception e) { /* gestione delleccezione */ } Se loperazione solleva diversi tipi di eccezione in risposta a diversi tipi di errore, più blocchi catch possono seguire lo stesso blocco try

ESEMPIO Conversione stringa / numero In Java, la conversione stringa / numero intero è svolta dal metodo statico int Integer.parseInt(String s) Loperazione è critica, perché può avvenire solo se la stringa data contiene la rappresentazione di un intero Se ciò non accade, parseInt solleva una NumberFormatException

ESEMPIO class EsempioEccezione { public static void main(String args[]){ int a = 0; String s = "1123"; try { a = Integer.parseInt(s); } catch (NumberFormatException e) { System.out.println("Stringa mal fatta"); }

ESEMPIO class EsempioEccezione { public static void main(String args[]){ int a = 0; String s = "1123"; try { a = Integer.parseInt(s); } catch (NumberFormatException e) { System.out.println("Stringa mal fatta"); } Catturare le eccezioni è spesso importante: uneccezione non catturata si propaga verso lesterno, di blocco in blocco: se raggiunge il main, provoca laborto del programma

COSÈ UNA ECCEZIONE Una eccezione è un oggetto, istanza di java.lang.Throwable o di una sua sottoclasse. Le due sottoclassi più comuni sono java.lang.Exception e java.lang.Error La parola eccezione è però spesso riferita a entrambe

COSÈ UNA ECCEZIONE Un Error indica problemi relativi al caricamento della classe o al funzio- namento della macchina virtuale Java (es. not enough memory), e va conside- rato irrecuperabile: perciò non è da catturare. Una Exception indica invece situazioni recuperabili, almeno in linea di principio (fine file, indice di un array oltre i limiti, errori di input, etc.): va catturata e gestita.

ECCEZIONI COME OGGETTI Poiché uneccezione è un oggetto, può contenere dati o definire metodi Tutte le eccezioni definiscono un me- todo getMessage() che restituisce il messaggio derrore associato Alcune eccezioni definiscono dei campi dati (ad esempio, bytesTransferred in InterruptedIOException ) che danno altre informazioni, utili per gestire la situazione.

RILANCIO DI ECCEZIONI In Java, un metodo che possa generare uneccezione deve: o gestire leccezione, con un costrutto try / catch oppure rilanciarla esplicitamente alle- sterno del metodo, delegandone in pratica la gestione ad altri. Se sceglie questa seconda strada, il me- todo deve indicare quale eccezione può uscire da esso, con la clausola throws

RILANCIO DI ECCEZIONI Ad esempio, un metodo che svolga una conversione stringa/numero, anziché gestire la NumberFormatException può decidere di rilanciarla allesterno: public int readInteger(String s) throws NumberFormatException { return Integer.parseInt(s); } Può sollevare uneccezione Non la gestisce, la rilancia allesterno

DEFINIRE NUOVE ECCEZIONI Dato che uneccezione è un normale og- getto Java, è possibile: definire nuovi tipi di eccezione definendo nuove classi generare eccezioni dallinterno di propri metodi. Per definire un nuovo tipo di eccezione basta definire una nuova classe che estenda la classe base Exception (o una delle sue sottoclassi)

ESEMPIO class NumberTooBigException extends IllegalArgumentException { public NumberTooBigException() { super(); } public NumberTooBigException(String s){ super(s); } Definisce i due costruttori standard: quello di default quello con un parametro stringa (il messaggio)

ESEMPIO Per sollevare (generare) uneccezione: prima si crea loggetto eccezione da lanciare poi lo si lancia con listruzione throw public int readInteger(String s) throws NumberFormatException, NumberTooBigException { int x = Integer.parseInt(s); if (x>100) throw new NumberTooBigException(); return x; }

ESEMPIO Per sollevare (generare) uneccezione: prima si crea loggetto eccezione da lanciare poi lo si lancia con listruzione throw public int readInteger(String s) throws NumberFormatException, NumberTooBigException { int x = Integer.parseInt(s); if (x>100) throw new NumberTooBigException(); return x; } Importante non confondere: la clausola throws che dichiara che un metodo rilancia allesterno uneccezione listruzione throw che solleva uneccezione