Gestione delle eccezioni in Java
|
|
|
- Beatrice Calo
- 9 anni fa
- Visualizzazioni
Transcript
1 Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1
2 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 L 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. 2
3 La gerarchia di classe delle eccezioni Object Throwable Error Exception 3
4 Gestire l eccezioni Java ha un insieme predefinito di eccezioni che possono accadere durante l esecuzione di un programma 3 modi di gestire l eccezioni: Ignorarle Gestirle quando avvengono Gestirle altrove nel programma La scelta del modo di gestire gli eventi anomali o eccezionali è un importante caratteristica del disegno del programma 4
5 Ignorare l 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 l indicazione: dell errore della linea in cui l eccezione si è verificata dellle chiamate di metodi che hanno portato all eccezione 5
6 Esempi 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... 6
7 Gestire l eccezioni 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. 7
8 L istruzione try catch try { blocco_1 (blocco di codice che può generare eccezione) } catch (tipo_eccezione1 identificatore) { blocco_2 (gestisce l'eccezione di tipo 1) } catch (tipo_eccezione2 identificatore) { blocco 3 (gestisce l'eccezione di tipo 2) }... 8
9 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 9
10 Classificazione dell eccezioni 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 10
11 Eccezioni controllate 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 11
12 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 12
13 Propagazione e gestione dell eccezioni 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 l eccezione con try catch oppure dichiarare a sua volta che potrà sollevare l eccezione nella clausola throws 13
14 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 14
15 La gerarchia di classe delle eccezioni Object Throwable Error LinkageError OutOfMemoryError AWTError Exception Eccezioni non controllate RuntimeException ArthemticException ArrayIndexOutOfBounds... NullPointerException java.io.ioexception java.io.filenotfoundexception 15
16 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 16
17 Nuove definizioni d eccezione È 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 17
18 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 18
19 Stampa dello stack La classe Throwable contiene il metodo printstacktrace() che stampa la traccia dello stack nel momento in cui si è verificata l'eccezione. Utile per diagnosticare l'eccezione senza terminare il programma: try {... } catch (Exception e) { } e.printstacktrace(); 19
Programmazione ad Oggetti
Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono
FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,
GESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
RETI DI CALCOLATORI Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione
Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo
Gestione degli Errori in Java Emilio Di Giacomo e Walter Didimo Errori in fase di esecuzione Un programma può contenere o generare errori in fase di esecuzione, di varia natura: errori di robustezza: dovuti
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Eccezioni predefinite
Eccezioni predefinite Java mette a disposizione molte eccezioni già confezionate, che descrivono la maggioranza dei problemi che possono verificarsi a run-time. Ognuna di queste è una classe. Tutte queste
Le eccezioni in Java
Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che
8. Java: Eccezioni e Thread
8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Le eccezioni motivazioni
Eccezioni ed asserzioni
Eccezioni ed asserzioni I concetti relativi ad eccezioni, errori ed asserzioni e le relative gestioni, permettono allo sviluppatore di scrivere del software robusto, ovvero che riesca a funzionare correttamente,
Gestione delle eccezioni
Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi
"Programmazione Distribuita" - Prof. Scarano. Laurea in Informatica. A.A Università di Salerno 1. Organizzazione della lezione
Lezione 8 Eccezioni e Thread Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Programmazione Distribuita. Vi.ttorio Organizzazione della
PROGRAMMAZIONE 2 6a. Eccezioni in Java
PROGRAMMAZIONE 2 6a. Eccezioni in Java 1 Generazione di errori Un metodo può richiedere che gli argomenti attuali soddisfino determinate precondizioni per procedere nell esecuzione o m(list L) con L non
Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
Gestione delle Eccezioni
Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007
Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento
Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla
Gestione delle eccezioni in Java
Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
