Eccezioni in Java. Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo.

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.
PHP.
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)
Le gerarchie di tipi.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Semantica Operazionale di un frammento di Java: lo stato
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
DLL: Dynamic Linking Library
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.
Funzioni definite dall’utente
Eccezioni Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
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.
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.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
AA2003/04 © M.A. Alberti Programmazione Eccezioni 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
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.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
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
Le funzioni a tempo di esecuzione
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
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{…}
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Programmazione concorrente
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
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)
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.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Astrazione procedurale ed eccezioni
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
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,
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
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.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
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 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)
Elementi di PL/SQL. Pl/Sql Il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione procedurale di Oracle che costituisce.
1 Semantica Operazionale di un frammento di Java: intro estensione (con piccole varianti) di quella di FP | v |
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’
Metodi in Java. Note Identificazione input: (il raggio è un numero reale !!!) Identificazione delle operazioni necessarie al calcolo Area=r*r*PI Circonferenza=2*r*PI.
Transcript della presentazione:

Eccezioni in Java

Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo di rendere più semplice, chiara e sicura la gestione di eventuali situazioni anomale che si possono verificare durante l'esecuzione di un programma Le eccezioni vengono lanciate da una istruzione e possono essere raccolte e gestite da altre parti del programma Un’eccezione in Java è un oggetto che descrive una situazione anomala o di errore recuperabile Un errore in Java è un oggetto che rappresenta una situazione non recuperabile e da non gestire Tutte le eccezioni e gli errori ereditano dalla classe Throwable

Classi per gestire le eccezioni in java

Come gestirle Java ha un insieme predefinito di eccezioni che possono accadere durante l’esecuzione di un programma 3 modi di gestire l’eccezioni: 1.Ignorarle 2.Gestirle quando avvengono 3. Gestirle altrove nel programma La scelta del modo di gestire gli eventi anomali o eccezionali è un’importante caratteristica del disegno del programma

Ignorare le eccezioni Se un’eccezione è ignorata da un programma, questo terminerà producendo un messaggio opportuno Il messaggio mostra la traccia dello stack delle chiamate dei metodi con 3 indicazioni: 1.dell’errore 2. della linea in cui l’eccezione si è verificata 3. dellle chiamate di metodi che hanno portato all’eccezione

Se ignoro i possibili errori.... L'istruzione double c = 7 / 0 genera l’eccezione java.lang.ArithmeticException: / by zero at....(....java:27) Exception in thread "main" Process Exit... L'istruzione array[15] = 3 può generare l’eccezione java.lang.ArrayIndexOutOfBoundsException at...(....java:30) Exception in thread "main" Process Exit...

Try e catch Si inserisce la linea di codice (o le linee di codice) che potrebbe generare l’eccezione all'interno di un blocco try. Un blocco try è seguito da una o più clausole catch, che contengono il codice per gestire l’eccezione Ogni clausola catch è associata ad un tipo d’eccezione e viene chiamata exception handler Quando si solleva un’eccezione, l'esecuzione delle istruzioni del blocco try si interrompe e si esegue la prima clausola catch che corrisponde al tipo d’eccezione sollevata Gestita l'eccezione, o terminato correttamente il codice del blocco try, si esegue la prima istruzione dopo il blocco try … catch.

In poche parole.... Il codice che può dar luogo a delle eccezioni viene racchiuso tra il try e il catch e il catch intercetterà l'eccezione qualora si verifichi. Nel blocco catch verranno eseguite tutte quelle istruzioni necessarie alla gestione dell'eccezione e che quindi verranno eseguite solo se si presenta l'eccezione stessa.

Propagazione dell’eccezioni Se l’eccezione non viene intercettata e gestita dove si verifica, si propaga attraverso la gerarchia delle chiamate di metodi (ovvero lo stack dei record di attivazione) Vengono chiusi tutti i record di attivazione fino ad incontrare un blocco try … catch che gestisca l'eccezione

Esempio public faiQualcosa2() { try { leggiFile(); } catch (FileInesistente fi) { System.out.println("Ooops! Il file " + fi.getNomeFile() + " non esiste!"); } catch (FileDanneggiato fd) { System.out.println("Ooops! Il file " + fd.getNomeFile() + " contiene dati scorretti!"); } }

Le eccezioni possono essere: controllate : dovute a eventi esterni al programma, es: cercare di accedere ad un file inesistente, si chiamano controllate perché il compilatore controlla che vengano esplicitamente indicate e intercettate non controllate : dovute al programma e che potrebbero essere evitate

Gestirle o lanciarle perché le gestisca un altro metodo ? Handle or declare: un’eccezione 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 l’eccezione o propagarla La clausola throws deve essere dichiarata nell’intestazione del metodo, es: public static int leggiFile(BufferedReader br) throws java.io.IOException { …..} Il compilatore segnala se un’eccezione controllata non viene gestita propriamente

Per avere un'eccezione controllata occorre.... 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 l’eccezione con try … catch oppure dichiarare a sua volta che potrà sollevare l’eccezione nella clausola throws

Eccezioni non controllate Non richiedono una gestione esplicita con la clausola throws Discendono da RuntimeException o da una sua classe discendente Tutte le altre sono controllate

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

Generazione di eccezioni: l’istruzione throw ▪Un codice può segnalare una anomalia sollevando una specifica eccezione tramite l’istruzione throw ▪ Esempio: throw new IllegalArgumentException( “Errore nei parametri”); ▪ Solitamente un’istruzione throw è inclusa in un’istruzione if che valuta una condizione per verificare se deve essere sollevata l’eccezione

La clausola finally ▪Un’istruzione 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 un’eccezione, vengono eseguite dopo le istruzioni della clausola catch appropriata

Definizione di eccezioni

Perché... Talvolta, può presentarsi l’esigenza di definire delle eccezioni personalizzate, che si scatenino al verificarsi di determinati eventi. In tal caso, sarà sufficiente costruire una nuova classe di eccezioni che discenda da un’altra già esistente, specializzandone il contesto. Sarà, naturalmente, utile far derivare la propria classe da una già presente che più si avvicini alle nostre necessità, in modo da facilitarci il compito. In generale, l’implementazione di una nuova eccezione ha la seguente forma:

È possibile definire nuove classi che estendono la gerarchia precedente. 2 possibilità: discendono da RuntimeException e quindi non sono controllate disecendono da Exception e quindi sono controllate I metodi che le lanciano dovranno dichiararlo nell’intestazione con la clausola throws

Esempio public class MiaEccezione extends Exception { public MiaEccezione() { } public MiaEccezione(String messaggio) { … super(messaggio); } }

Eccezioni già definite