Gestione delle eccezioni in Java



Documenti analoghi
Le eccezioni in Java

Eccezioni in Java A. FERRARI

Programmazione ad Oggetti

Laboratorio di reti I

Insegnamento di Laboratorio di algoritmi e strutture dati

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

Programmazione ad oggetti

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Le eccezioni in Java

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

GESTIONE DEGLI ERRORI

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

GESTIONE DEGLI ERRORI

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo

LE ECCEZIONI. Dott. Riccardo Zese.

Eccezioni e Thread (cenni)

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Il linguaggio Java. Le eccezioni

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Progettazione del Software

Eccezioni predefinite

Dal libro di Savitch & Carrano

OOP: L13: Eccezioni e loro trattamento in Java

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A

Eccezioni. Programmazione in rete e laboratorio Eccezioni. Classi eccezioni

Gestire le eccezioni. Lezione XI

Gli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato?

Il linguaggio Java. Le eccezioni

Fondamenti di Informatica

eccezioni Alberto Ferrari Alberto Ferrari Programmazione di applicazioni SW

Programmazione a Oggetti. Eccezioni

Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. lancio di eccezioni. checked e unchecked. cattura di eccezioni

GESTIONE DEGLI ERRORI. Il gestore delle eccezioni

Gestione delle eccezioni

Gestione delle Eccezioni

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Gestione delle eccezioni in Java

Inizializzare oggetti

Gestione degli errori

Le eccezioni in Java

Java fornisce una ricca gerarchia di classi di eccezioni: Object

ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

8. Java: Eccezioni e Thread

PROGRAMMAZIONE 2 6a. Eccezioni in Java

Eccezioni ed asserzioni

Le eccezioni sono eventi che si generano durante l esecuzione di un programma e in genere corrispondono a condizioni anomale.

Progettazione del Software

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Le eccezioni. Eccezioni

Gestione delle eccezioni

Le eccezioni in Java

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione

Introduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.

Package. Corso di Linguaggi di Programmazione ad Oggetti 1 A.A. 2003/04. A cura di Gianmaria Mancosu

Gestione delle eccezioni

Gestione delle Eccezioni

Esercitazione 2. Java:

Introduzione. Java. Errori. Errori

III Appello - 4 giugno 2009

La gestione delle eccezioni

"Programmazione Distribuita" - Prof. Scarano. Laurea in Informatica. A.A Università di Salerno 1. Organizzazione della lezione

PROGRAMMAZIONE 2 6a. Eccezioni in Java

Eccezioni. Corso di Tecniche di Programmazione

Lezione 8 Eccezioni e Thread

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Note ed esercizi aggiuntivi

Gestire le situazioni di errore

Gestione delle eccezioni

Programmazione Orientata agli Oggetti in Linguaggio Java

Gestione delle eccezioni

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

L input da tastiera in Java. Dott. Ing. M. Banci, PhD

Lezione 14 Gestione delle eccezioni

Note ed esercizi aggiuntivi

Gestione delle eccezioni. 10/12/2004 Laboratorio di Programmazione - Luca Tesei 1

Gestione delle Eccezioni

Funzioni, Stack e Visibilità delle Variabili in C

Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente

Le basi del linguaggio Java

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

Tipi di dati astratti

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Soluzione della prova scritta del 5 febbraio 2013

Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Individuazione e ripristino

I compitino 22 aprile 2010

CloneNotSupportedException clone() Object clone() protected native Object clone() throws CloneNotSupportedException this

Gestione delle eccezioni in Java

Funzioni, Stack e Visibilità delle Variabili in C

Programmazione a oggetti

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Laboratorio di programmazione

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

Transcript:

Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1

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

La gerarchia di classe delle eccezioni Object Throwable Error Exception 3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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