AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.

Slides:



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

Programmazione in Java
Introduzione ad XML Mario Arrigoni Neri.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Universita di Camerino
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Le gerarchie di tipi.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Gestione del processore
Semantica Operazionale di un frammento di Java: lo stato
DLL: Dynamic Linking Library
Training On Line - Report. 2 Report storico Da menu: Reportistica -> Report storico Si accede alla pagina di selezione del report storico.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Elementi di PL/SQL.
Eccezioni Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Argomenti Avanzati di Sistemi Informativi Approfondimento su Workflow e Web Services: "Gestione delle eccezioni: confronto tra soluzioni per applicazioni.
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 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Informatica (Programmazione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Programmazione II: Tecniche Avanzate. (A.A. 1999/2000) - Lezione 6 1 Estensione di classi: il Contratto INTERFACCIA E REALIZZAZIONE Che cosa realizza una.
I Thread.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
AA2003/04 © M.A. Alberti Programmazione Eccezioni 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
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.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Strutture di controllo in C -- Flow Chart --
Espressioni condizionali
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.
Elaborazione di Franco Grivet Chin
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Gestione degli errori, delegates,eventi 1. Eccezione – Situazione anomala che potrebbe avvenire durante lesecuzione del programma – try{…}catch(…){…}finally{…}
Java Contardi Carlo A.S. 2008/09.
Namespaces 1. Utilizzati per contenere tipi (classi, strutture, interfacce … ) ed altri namespaces La Class Library è organizzata gerarchicamente mediante.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Classi ed Ereditarietà in Python
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Conversione da base 10 a base X (Utilizzo della pila)
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Linguaggi e modelli computazionali LS Manni Tiziano
Threads.
Pippo.
Astrazione procedurale ed eccezioni
1 Un esempio con iteratore: le liste ordinate di interi.
Argomenti della lezione
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Eccezioni Metodi parziali Eccezioni: Usi e Metodi parziali Eccezioni: rimuovere i requires Eccezioni: rimuovere i requires Eccezioni: definizione, sollevamento,
Sottoprogrammi e funzioni
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
10/12/2004Laboratorio di Programmazione - Luca Tesei1 Gestione delle eccezioni.
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.
LIP: 22 Marzo 2005 Eccezioni. Eccezioni-Richiami Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Elementi di PL/SQL. Pl/Sql Il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione procedurale di Oracle che costituisce.
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.
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:

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 2 Eccezioni Listruzione try/catch La propagazione delleccezioni Intercettare e gestire eccezioni

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 3 Eccezioni in breve Uneccezione è un oggetto che descrive una situazione anomala o di errore Leccezioni vengono lanciate da una parte di un programma e possono essere raccolte e gestite da altre parti del programma Un programma può perciò essere suddiviso nel normale flusso desecuzione e in quello eccezionale Anche un errore è rappresentato come un oggetto Java, ma solitamente rappresenta una situazione non recuperabile e da non gestire

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 4 Gestire leccezioni Java ha un insieme predefinito di eccezioni ed errori che possono accadere durante lesecuzione di un programma 3 modi di gestire leccezioni: Ignorarle Gestirle quando avvengono Gestirle altrove nel programma La scelta del modo di gestire gli eventi anomali o eccezionali è unimportante caratteristica del disegno del programma

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 5 Ignorare leccezioni Se uneccezione è ignorata da un programma, questo terminerà producendo un messaggio opportuno Il messaggio mostra la traccia dello stack delle chiamate dei metodi con lindicazione: dellerrore della linea in cui leccezione si è verificata dellle chiamate di metodi che hanno portato alleccezione

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 6 Esempi Zero.java può causare uneccezioneZero.java java.lang.ArithmeticException: / by zero at Zero.calcolaQuoziente(Zero.java:27) at Zero.main(Zero.java:21) Exception in thread "main" Process Exit... BasicArray_eccezione.java causa leccezioneBasicArray_eccezione.java java.lang.ArrayIndexOutOfBoundsException at BasicArray_eccezione.main(BasicArray_eccezione. java:30) Exception in thread "main" Process Exit...

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 7 Esempi Postfissa.java può causare eccezioniPostfissa.java java.util.EmptyStackException at java.util.Stack.peek(Stack.java:82) at java.util.Stack.pop(Stack.java:64) at Postfissa.elabora(Postfissa.java:37) at Postfissa.main(Postfissa.java:21) Exception in thread "main" Process java.lang.NumberFormatException: 1= at java.lang.Integer.parseInt(Integer.java:423) at java.lang.Integer. (Integer.java:549) at Postfissa.elabora(Postfissa.java:42) at Postfissa.main(Postfissa.java:21) Exception in thread "main" Process Exit...

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 8 Gestire leccezioni Occorre processare leccezione quando accade, la linea di codice che lancia leccezione deve essere eseguita in un blocco try. Un blocco try è seguito da 1 o più clausole catch, che contengono il codice per gestire leccezione Ogni clausola catch è associata ad un tipo deccezione e viene chiamata exception handler Quando si solleva uneccezione, la computazione prosegue fino alla prima clausola catch che corrisponde al tipo deccezione sollevata

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 9 Listruzione try Si tenta di eseguire il codice e se si intercetta uneccezione si cerca di porre rimedio try { blocco_1 } catch (tipo_eccezione identificatore) { blocco_2 } Listruzione try identifica un blocco distruzioni in cui può verificarsi uneccezione

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 10 La clausola catch Un blocco try è seguito da una o più clausole catch, che specificano quali eccezioni vengono gestite Ogni clausola catch corrisponde a un tipo di eccezione sollevata Quando si verifica uneccezione, la computazione continua con la prima clausola che corrisponde alleccezione sollevata Divisione.java modifica Zero.javaDivisione.java Postfissa_e.java ProductCodes.java

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 11 La clausola finally Unistruzione try può essere seguita da una clausola finally opzionale Le istruzioni della clausola finally vengono sempre eseguite: Se non viene sollevata nessuna eccezione, vengono eseguite dopo che si è concluso il blocco try Se si verifica uneccezione, vengono eseguite dopo le istruzioni della clausola catch appropriata

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 12 Rientro dai metodi in caso deccezioni Normalmente se un metodo main richiama il metodo_1 che richiama il metodo_2 che richiama il metodo_3, il controllo passa dal main al metodo_1 al metodo_2 al metodo_3 e quando questo si conclude ritorna al metodo_2 che a conclusione lo passa al metodo_1 e quindi al main Se si verifica uneccezione durante lesecuzione del metodo_3 il controllo viene passato diversamente

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 13 Propagazione delleccezioni Se leccezione non viene intercettata e gestita dove si verifica, può ancora essere trattata a un livello più alto Leccezioni si propagano attraverso la gerarchia delle chiamate di metodi finché non vengono intercettate e gestite Propagation.java con la classe ExceptionScope.javaPropagation.java ExceptionScope.java

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 14 Listruzione throw Un programmatore può definire uneccezione estendendo una classe La classe Exception o una sua sottoclasse Leccezioni vengono sollevate con listruzione throw Solitamente unistruzione throw è inclusa in unistruzione if che valuta una condizione per verificare se deve essere sollevata leccezione CreatingExceptions.java con leccezione EccezioneFuoriIntervallo.javaCreatingExceptions.java EccezioneFuoriIntervallo.java CreatingExceptions_2.java

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 15 Classificazione delleccezioni Le eccezioni possono essere controllate Dovute a eventi esterni al programma Cercare di accedere a una pagina web inesistente Cercare una funzione di libreria che manca Si chiamano controllate perché il compilatore controlla che vengano esplicitamente indicate e intercettate O non controllate Dovute al programma e che potrebbero essere evitate

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 16 Eccezioni controllate Uneccezione controllata deve essere raccolta da un metodo in una clausola catch o deve essere nella lista delle clausole throws di ciascun metodo che possa lanciare leccezione o propagarla La clausola throws deve essere dichiarata nellintestazione del metodo Il compilatore segnala se uneccezione controllata non viene gestita propriamente

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 17 Eccezioni non controllate Non richiedono una gestione esplicita con la clausola throws Leccezioni non controllate in Java sono quelle che si verificano a run time Discendono da RuntimeException o da una sua classe discendente Tutte le altre sono controllate

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 18 Errori Gli errori sono simili alle eccezioni RuntimeException o ai suoi discendenti Gli errori non devono essere controllati Gli errori non richiedono una clausola throws

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 19 La gerarchia di classe delle eccezioni Object Throwable Error Exception LinkageError Virtual MachineError AWTError RuntimeException ClassNotFoundException NullPointerException IndexOutOfBoundException ArthemticException NoSuchMethodException Eccezioni non controllate

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 20 Nuove definizioni deccezione Tutte le nuove classi che estenono la gerarchia precedente o Discendono da RuntimeException e quindi non sono controllate o Disecendono da Exception e quindi sono controllate I metodi che le lanciano dovranno dichiararlo nellintestazione con la clausola throws Un metodo che può lanciare uneccezione controllata dovrà dichiararlo

AA 2005/06 Informatica Programmazione M.A. Alberti-L. Capra 21 Propagazione e gestione delleccezioni controllate Un metodo che può sollevare un eccezione controllata deve dichiararlo con la clausola throws A sua volta un metodo che lo richiama deve intercettarla o dichiararla, cioè deve: Gestire leccezione con la coppia try-catch o Dichiarare a sua volta che potrà sollevare leccezione nella clausola throws