Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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 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
5
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
6
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.
7
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
8
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!!!!!
9
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
10
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
11
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
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 l’eccezione viene lanciata RuntimeException IOException
13
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
14
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”);
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.