1.11.20031 Le eccezioni F. Bombi 01/11/2003. 1.11.20032 Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.

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.
Package Utilizzo classi.
Universita di Camerino
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
Programmazione Ingegneria TLC
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
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
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
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 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
Scomposizione di stringhe
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.
AA2003/04 © M.A. Alberti Programmazione Eccezioni 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
Selezione (=scelta) con “if-else”
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.
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Programmazione in Java
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.
Diagramma di flusso del problema del Supermercato.
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.
Programmazione concorrente
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
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
Macro 1 Una macro è un elenco denominato di istruzioni. Ciascuna istruzione viene chiamata ‘azione’. Le azioni vengono eseguite in modo sequenziale e,
I nomi in Java F. Bombi 18 novembre novembre 2003.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Astrazione procedurale ed eccezioni
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Tipi primitivi in java tipodefaultmem.daa booleanfalse1 bittrue false char'\u0000'16 bit byte08 bit short016 bit int032 bit-2^312^31-1.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
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.
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.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 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
Input-Output 16 Maggio Nei programmi sviluppati sino ad oggi abbiamo usato * output su schermo (con System.out.print e System.out.print ) * input.
10/12/2004Laboratorio di Programmazione - Luca Tesei1 Gestione delle eccezioni.
Ese 1 (del 31 Marzo 2004). Il compilatore Non esegue il programma, non guarda i valori che possono assumere di volta in volta le variabili, non fa assunzioni.
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 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
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)
Esercizio 3. Testo Dare rappresentazione e realizzazione dei metodi della seguente classe QueueWithPriority. Nella risposta, non riportare i commenti.
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.
10/10/20021 Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
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’
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:

Le eccezioni F. Bombi 01/11/2003

Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono verificarsi a causa di: errori di programmazione errori nei dati (dati con valori o formato diverso da quello previsto) presenza di un caso non previsto (ad es. un file non è leggibile o scrivibile o non esiste) Mentre possiamo assumere, anche se questo è difficile da garantire in pratica, che i nostri programmi siano esenti da errori, situazioni impreviste collegate ai dati o alle condizioni al contorno sono sempre possibili

Come gestire le situazioni impreviste metodo diverso La gestione di una situazione imprevista è complicata dal fatto che questa è in genere conseguenza di operazioni compiute molte istruzioni prima probabilmente in un metodo diverso da quello in cui si verifica lerrore segnalato gestito Lerrore deve poter essere segnalato nel momento in cui si verifica ed essere gestito in un altro punto del programma lanciando catturato In Java questo si ottiene lanciando un oggetto nel momento in cui si verifica lerrore, oggetto che verrà catturato da chi si è dichiarato capace di gestire lerrore (al limite dalla Macchina Virtuale)

lanciati Oggetti che possono essere lanciati errorieccezioni In java.lang è definita la classe Throwable superclasse di tutti gli errori e le eccezioni che possono essere lanciati dalla JVM errore Un errore ( Error e le sue sottoclassi) è una condizione eccezionale per la quale non si prevedono azioni correttive Un metodo non è tenuto a dichiarare che nel suo ambito possono essere lanciati Error eccezione Uneccezione ( Exception e le sue sottoclassi) sono invece condizioni eccezionali per le quali è ragionevole prevedere azioni correttive Le sottoclassi di Exception devono essere dichiarate nella clausola throws di un metodo…

devono essere dichiarate o gestite possono essere gestite non vanno gestite

RuntimeException A differenza di quanto si deve fare con le eccezioni sottoclasse di Exception non è necessario dichiarare nella clausola throws di un metodo le eccezioni sottoclassi di RuntimeException Si tratta in genere di eccezioni che quindi possono essere controllate o meno in funzione della particolare applicazione Esempi di RuntimeException : NullPointerException ArrayIndexOutOfBoundsException

Lanciare e catturare uneccezione Uneccezione viene lanciata con la clausola: throw esemplareDiEccezione E viene catturata da una clausola del tipo: try { // blocco in cui si può verificare leccezione } catch (tipoDiEccezione nome) { // blocco in cui viene gestita leccezione }

public static void main (String[] arg) { Fattoriale f = new Fattoriale(); String dato = null; while ((dato = JOptionPane.showInputDialog("Dammi dato"))!= null) { int n = Integer.parseInt(dato); // primo possibile errore System.out.println(f.di(n)); // secondo possibile errore } System.exit(0); } Nel ciclo while si possono verificare due tipi di errore: - si può inserire un dato che non può essere convertito in un intero - si può inserire un dato negativo del quale non si può calcolare fattoriale La risposta della JVM agli errori comporta la segnalazione dellerrore e la terminazione dellapplicazione Un esempio

public static void main (String[] arg) { Fattoriale f = new Fattoriale(); String dato = null; while ((dato = JOptionPane.showInputDialog("Dammi dato"))!= null) { try { int n = Integer.parseInt(dato); System.out.println(f.di(n)); } catch (NumberFormatException e) { System.out.println("Non posso convertire in un numero "+dato); } System.exit(0); } Gestione del primo errore In caso di errore

public static void main (String[] arg) { Fattoriale f = new Fattoriale(); String dato = null; while ((dato = JOptionPane.showInputDialog("Dammi dato"))!= null) { try { int n = Integer.parseInt(dato); try { System.out.println(f.di(n)); } catch (IllegalArgumentException e) { System.out.println("Non posso calcolare il fattoriale di " + dato); } catch (NumberFormatException e) { System.out.println("Non posso convertire in un numero "+dato); } System.exit(0); }

try { int n = Integer.parseInt(dato); System.out.println(f.di(n)) } catch (NumberFormatException e) { System.out.println("Non posso convertire in un numero "+dato); } catch (IllegalArgumentException e) { System.out.println("Non posso calcolare il fattoriale di " + dato); } In alternativa, perdendo un po di selettività nella gestione degli errori è anche possibile catturare più eccezioni in un singolo blocco try utilizzando più clausole catch ciascuna dedicata ad una delle possibili eccezioni

Osservazioni Se non si sa cosa fare in presenza di uneccezione evitare di costruire un blocco try-catch che si limiti a stampare un messaggio terminando lapplicazione: è quello che la JVM fa di default mettere a tacere È vietato mettere a tacere uneccezione try {…} catch (Exception e) {} La cosa da fare è dichiarare che un metodo può lanciare uneccezione con la clausola throws tipoEccezione