La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Java base V: La gestione delle Eccezioni. Argomenti Le eccezioni Ignorare le eccezioni Gestire le eccezioni Rilanciare le eccezioni Gerarchia delle eccezioni.

Presentazioni simili


Presentazione sul tema: "Java base V: La gestione delle Eccezioni. Argomenti Le eccezioni Ignorare le eccezioni Gestire le eccezioni Rilanciare le eccezioni Gerarchia delle eccezioni."— Transcript della presentazione:

1 Java base V: La gestione delle Eccezioni

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

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

4 La gestione degli errori I nostri applicativi sono pieni di istruzioni critiche, che in certi casi possono produrre errori Lapproccio classico consiste nellinserire controlli (if… else..) per cercare di intercettare a priori le situazioni critiche insoddisfacente non è facile prevedere tutte le situazioni che potrebbero produrre lerrore Java introduce il concetto di eccezione

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

6 Le eccezioni in Java Java ha un insieme predefinito di eccezioni ed errori che possono accadere durante lesecuzione 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 lerrore direttamente a un altro punto dove lerrore può essere gestito e uno stato corretto dellapplicazione ripristinato BLOCCO A LANCIA ECCEZIONE BLOCCO B GESTISCE E. RILANCIA E.

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

8 Ignorare le Eccezioni Se uneccezione è ignorata da un programma, questo terminerà producendo un messaggio opportuno 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 Esempio: Divisione per zero EVITARE!!!!!

9 Gestire le Eccezioni Occorre processare leccezione quando accade La linea di codice che lancia leccezione 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 deccezione La computazione prosegue fino alla prima clausola catch che corrisponde al tipo deccezione sollevata Opzionale, indica il codice da esguire anche in caso di errore

10 Rilanciare le Eccezioni trattata a un livello più alto Se leccezione non viene intercettata e gestita dove si verifica, può ancora essere trattata a un livello più alto RILANCIATA ESPLICITAMENTE RILANCIATA ESPLICITAMENTE ALLESTERNO 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 eccezioneRilancia leccezione

11 Rilanciare le Eccezioni (2) A volte è utile rilanciare programmaticamente un particolare tipo di eccezione SI UTILIZZA LISTRUZIONE THROW Solitamente unistruzione throw è inclusa in unistruzione if che valuta una condizione per verificare se deve essere sollevata leccezione 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

12 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 leccezione viene lanciata IOException RuntimeException

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

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


Scaricare ppt "Java base V: La gestione delle Eccezioni. Argomenti Le eccezioni Ignorare le eccezioni Gestire le eccezioni Rilanciare le eccezioni Gerarchia delle eccezioni."

Presentazioni simili


Annunci Google