Java base V: La gestione delle Eccezioni

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Advertisements

Universita di Camerino
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)
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Le gerarchie di tipi.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
1 Le gerarchie di tipi: implementazioni multiple e principio di sostituzione.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Anno accademico Il preprocessore del linguaggio C.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Elementi di PL/SQL.
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.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
Corso di Informatica (Programmazione)
Specifiche senza JML: uso delle asserzioni. 2 Asserzioni in Java Dal jdk 1.4 (da Febbraio 2002) cè meccanismo per gestire asserzioni Asserzione: espressione.
Derivazione tra classi
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.
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.
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.
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.
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{…}
Classi ed Ereditarietà in Python
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”
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.
Astrazione procedurale ed eccezioni
1 Un esempio con iteratore: le liste ordinate di interi.
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
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,
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Primo Compitino Primo esercizio Identificare gli errori segnalati dal compilatore Verifica statica del codice Regole di binding per i nomi (quelle.
1 Progettazione dettagliata di un Tipo di Dato Astratto: l’ambiente di metodi.
10/12/2004Laboratorio di Programmazione - Luca Tesei1 Gestione delle eccezioni.
1 Gerarchie e polimorfismo: liste. 2 Generalizzare le liste di interi  List 4 lista di oggetti –non modificabile 4 vorremo poi definire un sottotipo.
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 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.
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
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)
Cose nuove di Java (prima a chiacchiera, poi formalmente)
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Elementi di PL/SQL. Pl/Sql Il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione procedurale di Oracle che costituisce.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Liste Concatenate 28 Marzo Avviso Martedi’ 4 Aprile: Verifica di LIP Per iscriversi (obbligatorio) inviare un e- mail entro venerdi’ 31 Marzo a.
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’
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:

Java base V: La gestione delle Eccezioni

Argomenti Le eccezioni Ignorare le eccezioni Gestire le eccezioni Rilanciare le eccezioni Gerarchia delle eccezioni Le eccezioni personalizzate

Obiettivi Conoscere e capire la gestione delle eccezioni e degli errori in Java Creare una tipologia di eccezioni personalizzata

La gestione degli errori I nostri applicativi sono pieni di istruzioni “critiche”, che in certi casi possono produrre errori L’approccio classico consiste nell’inserire controlli (if… else..) per cercare di intercettare a priori le situazioni critiche insoddisfacente non è facile prevedere tutte le situazioni che potrebbero produrre l’errore Java introduce il concetto di eccezione

Cosa sono le eccezioni Un’eccezione è un segnale indicante il verificarsi di un’errore o di una condizione anomala nell’esecuzione del programma Situazioni tipiche in cui si verifica un’eccezione Implementazione incorretta Un oggetto può trovarsi in uno stato inconsistente o inappropriato Errori logici Causati dal Programmatore Vs Alcune situazioni anomale possono essere causate dall'ambiente "esterno" al programma Hard Disk pieno Mancanza di permessi per una risorsa Interruzione di rete

Le eccezioni in Java Java ha un insieme predefinito di eccezioni ed errori che possono accadere durante l’esecuzione di un programma Il meccanismo delle eccezioni fornito da Java è un modo flessibile per realizzare una corretta gestione delle situazioni di errore Permette di passare il controllo dal punto in cui si verifica l’errore direttamente a un altro punto dove l’errore può essere gestito e uno stato corretto dell’applicazione ripristinato BLOCCO A LANCIA ECCEZIONE B GESTISCE E. RILANCIA E.

Approcci alle eccezioni La scelta del modo di gestire gli eventi anomali o eccezionali è un’importante caratteristica del disegno del programma 3 modi di gestire l’eccezioni Ignorarle Rilanciarle e Gestirle altrove nel programma Gestirle quando avvengono

Ignorare le Eccezioni EVITARE!!!!! Se un’eccezione è ignorata da un programma, questo terminerà producendo un messaggio opportuno traccia dello stack delle chiamate dei metodi con l’indicazione dellle chiamate di metodi che hanno portato all’eccezione dell’errore della linea in cui l’eccezione si è verificata Esempio: Divisione per zero EVITARE!!!!!

Gestire le Eccezioni Occorre processare l’eccezione quando accade La linea di codice che lancia l’eccezione deve essere eseguita in un blocco try/catch try { /* operazione critica che può sollevare eccezioni */ } catch (Exception e) { /* EXCEPTION HANDLER */ finally{ /* blocco da eseguire sempre */ 1 o più blocchi catch Ogni catch associata ad un tipo d’eccezione La computazione prosegue fino alla prima clausola catch che corrisponde al tipo d’eccezione sollevata Opzionale, indica il codice da esguire anche in caso di errore

Rilanciare le Eccezioni Se l’eccezione non viene intercettata e gestita dove si verifica, può ancora essere trattata a un livello più alto RILANCIATA ESPLICITAMENTE ALL’ESTERNO DEL METODO Finchè non viene intercettata e gestita da un metodo PROPAGAZIONE deve indicare quale eccezione può uscire da esso public int readInteger(String s) throws NumberFormatException { return Integer.parseInt(s); } Solleva eccezione Rilancia l’eccezione

Rilanciare le Eccezioni (2) A volte è utile rilanciare programmaticamente un particolare tipo di eccezione SI UTILIZZA L’ISTRUZIONE THROW Solitamente un’istruzione throw è inclusa in un’istruzione if che valuta una condizione per verificare se deve essere sollevata l’eccezione il metodo termina immediatamente (come se si eseguisse un return) Il controllo non torna di default al metodo chiamante Il controllo viene passato al gestore

Tipi di Eccezione in Java 2 CATEGORIE CONTROLLATE NON CONTROLLATE il compilatore pretende che ogni metodo specifichi cosa fare se una eccezione di questo tipo viene lanciata da un comando al suo interno il compilatore non richiede che si specifichi cosa fare se l’eccezione viene lanciata RuntimeException IOException

Gerarchia di Eccezioni Throwable Non gestibili e dovuti a fatti esterni Estendiamo queste Error Exception IOException ClassNot Found Exception CloneNot Supported Exception Runtime Exception Controllate

Le eccezioni personalizzate Permettono di fornire al chiamante informazioni diagnostiche aggiuntive Permettono di implementare una logica degli errori relativa al proprio dominio applicativo DEVONO ESTENDERE LA CLASSE EXCEPTION O DERIVATE DEVONO IMPLEMENTARE COSTRUTTORE CON MESSAGGIO public class MiaExeption extends Exception { public MiaException(String message) { super(message); } Per rilanciare l’eccezione personalizzata throw new MiaExeption(“MESSAGGIO ERRORE”);